web-dev-qa-db-ja.com

POST AngularJSを使用した後の別のページへのリダイレクト

検索して解決策を考え出さなかった後、私はいくつかの助けのためにこのコードスニペットを投稿しています。

$scope.createAddress = function () {
    $http({
        method: 'POST',
        url: '/addressBook/api/Person',
        data: $scope.person,
        headers: {
            'Content-Type': 'application/json; charset=utf-8'
        }
    }).success(function (data) {
        $location.path('/addressBook');
    });
}

投稿に成功した後、別のページにリダイレクトしたいと思います。 $ location.pathはこれを達成していません。 $ scope.apply()を試してみましたが、他の人もそれで成功しています。 $ locationが何に使用されているのかわからないのですか?コードがヒットしています。

13
Dennis Kiesel

$routeProviderのような、そのパスの変更をリッスンするものがあるはずです。それは事実ですか?

他の(サーバー側の)ルートにページ全体を再読み込みする必要がある場合は、$window.location.hrefを試してください。

10
Jair Trejo

依存関係をコントローラーに注入することを忘れないでください:

                                                       |-- inject!
angular.module('myApp.controllers', []).               v
controller('AddressController', function ($scope, $location, $http) {
  $http({
    method: 'POST',
    url: '/addressBook/api/Person',
    data: $scope.person,
    headers: {
        'Content-Type': 'application/json; charset=utf-8'
    }
  }).success(function (data) {
    $location.path('/addressBook');
  });
});
22
Sgnl

コントローラに$ locationを追加します。この例のように:app.controller( 'yourController'、function($ scope、$ location、$ http、etc ...)そして$ httpは次のようになります。

$http({.... }).success(function(response) { $location.path('/your path')})

ただし、$ routeProvider構成に場所を追加する必要があることを確認してください。何かのようなもの:

app.config(['$routeProvider', 
   function($routeProvider) { 
   $routeProvider.
     when('/yournewlocation', {
      templateUrl: 'yourTemplate/yourpage'
   })
  }
])

それでおしまい。よくあなたは私が話していることを知っています。

1
Joshua Fabillar
.controller('regCtrl', ['$scope','$http', function($scope,$http) {

        $scope.submit = function() {
            alert("vf");

            $http.post("http://localhost:3000/insert",function(response,$location){
                if(response!= null){
                $location.path("/login");
            }
            else{
                $state.go('/register');
            }
            });
            }

            }]);

私のコードはこのようなものです私はページを登録した後にjsonの応答しか得ていません別のページに移動していません

0
user8747664