13

在搜索并没有提出解决方案后,我发布此代码片段以寻求帮助。

$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 的用途?代码被击中。

4

6 回答 6

22

请记住将依赖项注入控制器:

                                                       |-- 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');
  });
});
于 2014-04-11T01:46:41.717 回答
10

应该有一些东西在监听路径变化,比如$routeProvider. 是这样吗?

如果您需要将整页重新加载到其他(服务器端)路由,您可以尝试$window.location.href.

于 2013-09-03T19:20:57.613 回答
1

在您的控制器中添加 $location. 像这样 Ex: 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'
   })
  }
])

而已。好吧,你知道我在说什么。

于 2016-06-21T13:45:03.160 回答
0
.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 响应,它没有导航到另一个页面

于 2017-10-09T17:47:47.317 回答
0

只需使用window.location.replace("/Home/Index");

于 2020-07-11T08:02:53.373 回答
-1

最好的方法和最轻的方法是

window.location.replace("/home/list");

于 2021-06-05T11:04:21.230 回答