検索して解決策を考え出さなかった後、私はいくつかの助けのためにこのコードスニペットを投稿しています。
$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が何に使用されているのかわからないのですか?コードがヒットしています。
$routeProvider
のような、そのパスの変更をリッスンするものがあるはずです。それは事実ですか?
他の(サーバー側の)ルートにページ全体を再読み込みする必要がある場合は、$window.location.href
を試してください。
依存関係をコントローラーに注入することを忘れないでください:
|-- 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');
});
});
コントローラに$ 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'
})
}
])
それでおしまい。よくあなたは私が話していることを知っています。
.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の応答しか得ていません別のページに移動していません