Javascript $location.path(…)不更新页面
我正在尝试在成功登录后移动到用户的主页。 通过调用$location.path()可以正确更新浏览器的地址栏,但不会重新加载页面 我知道这是一种常见的问题,有几个潜在的原因Javascript $location.path(…)不更新页面,javascript,angularjs,Javascript,Angularjs,我正在尝试在成功登录后移动到用户的主页。 通过调用$location.path()可以正确更新浏览器的地址栏,但不会重新加载页面 我知道这是一种常见的问题,有几个潜在的原因 我认为我正确地处于angular生命周期内,因为成功的身份验证要么是由$http.post响应触发的,要么是通过和angular$timeout模拟的(两种方法都不起作用) 添加$scope.apply()无论如何都没有帮助 例如,设置$location.absUrl(“”)完全没有效果 以下是登录控制器: var sw
- 我认为我正确地处于angular生命周期内,因为成功的身份验证要么是由$http.post响应触发的,要么是通过和angular$timeout模拟的(两种方法都不起作用)
- 添加$scope.apply()无论如何都没有帮助
- 例如,设置$location.absUrl(“”)完全没有效果
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模板视图,并且当前登录页面和用户主页位于两个不同的模板上
服务器端和客户端路由之间的相互作用让我有点眼花缭乱…我们能看看控制器吗?您是否正在注入
$location
服务?