【发布时间】:2014-08-25 11:04:29
【问题描述】:
以下是我的$routeProvider 代码-
$routeProvider
.when("/login", {
template: JST["app/templates/login"],
controller: "LoginController",
})
.when("/dashboard", {
template: JST["app/templates/dashboard"],
controller: "DashboardController",
resolve:{
getUser: function(UserService) {
return UserService.chkUser()
}
}
})
.otherwise({ redirectTo: function() {window.location = "/login";} });
$locationProvider.html5Mode(true);
});
以下是我的UserService 代码 -
angular.module("app").factory("UserService", function($http, $q, User) {
return {
chkUser: function() {
var defer = $q.defer();
defer.resolve(false);
return defer.promise;
// Also tried -
// window.location = "/login";
}
};
});
问题 -
现在,当我在浏览器中导航到 http://example.com/dashboard 时,我应该会在“/login”处重新登录,但我没有,请告诉我我对 angularJS 中的 resolve 用法有什么问题。
【问题讨论】:
-
使用 $location.path('/login') 代替 window.location
标签: javascript angularjs resolve ngroute