$ location.path(...)不更新页面

时间:2015-05-21 16:26:00

标签: javascript angularjs

我成功登录后尝试移动到用户的主页面。 通过调用$ location.path()可以正确更新浏览器的地址栏,但不会重新加载页面。

我知道这是一个常见的问题,有几个可能的原因。

  • 我认为我在角度生命周期内是正确的,因为成功的身份验证要么是由$ http.post响应触发,要么是模拟通过和$ $ timeout(两种方法都不起作用)
  • 无论如何,添加$ scope.apply()无济于事
  • 设置例如$ location.absUrl(' http://google.com')反而完全无效。

这是登录控制器:

var swControllers = angular.module('swControllers', []);

swControllers.controller('LoginCtrl', ['$scope', '$location', 'authentication',
    function($scope, $location, authentication) {
        authentication.ClearCredentials();

        $scope.login = function () {
            $scope.dataLoading = true;
            authentication.Login($scope.email, $scope.password, function(response) {
                $scope.dataLoading = false;
                if (response.success) {
                    authentication.SetCredentials($scope.email, $scope.password);
                    $location.path('userHome');
                    //$location.absUrl('http://google.com');
                    //$scope = angular.element(document).scope();
                    //$scope.$apply();

                } else {
                    $scope.error = response.message;
                    // $scope.dataLoading = false;
                }
            });
        };
}]);

我有更多的一般建筑问题:依靠ngRoute来处理这种东西是否更清晰?这是否意味着我只限于单页应用程序?

因为我在服务器端使用Express + jade模板视图,当前登录页面和userHome驻留在两个不同的模板上。

我对服务器端和客户端路由之间的相互作用感到有点眩目......

0 个答案:

没有答案