【发布时间】:2017-08-18 18:39:55
【问题描述】:
我想在路由器中检查一些东西。在某些情况下,我应该重定向到另一个页面。
我设置了路由器:
when('/login', {
templateUrl: 'login.html',
controller: 'Login',
resolve : {
'checkLogin': ['checkLogin', function(checkLogin){
return checkLogin.isLogin();
}]
}
})
和工厂:
app.factory('checkLogin', [function() {
"use strict";
return {
isLogin: function() {
if (loggin === 1) {
$location.path('/home');
};
}
};
}]);
如果loggin === 1 它重定向到/home,但它仍然调用Login 控制器。我怎样才能禁用它?在这种情况下不要触发Login 控制器?
谢谢
【问题讨论】:
-
你说的 是什么意思,但它无论如何都会调用登录控制器。我怎样才能禁用它?在这种情况下不要触发登录控制器?
-
@PankajParkar 我的意思是如果用户登录我需要重定向到
/home,我不需要运行Login控制器。在Login控制器内部,我调用 API。我检查了 - 应用程序重定向到/home并同时调用该 API。对不起我的英语。 -
我还在
Login控制器中添加了console.log('this is login controller')。应用程序将我重定向到/home,我可以在控制台中看到this is login controller。 -
你为什么不在你的控制器中使用那个工厂呢?由于 resolve 部分路由是为控制器提供数据,所以控制器在 resolve 后调用
-
@Nick 你可以考虑在this way 中改变你的实现,解决方法你不能取消你当前的导航
标签: angularjs ngroute angularjs-ng-route