$routeProvider - 解析失败后不加载控制器
$routeProvider - not load controller after failed resolve
我想检查一下路由器中的内容。在某些情况下,我应该重定向到另一个页面。
我设置了路由器:
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 建议的 $locationChangeStart
。
app.run(['$rootScope', '$location', function($rootScope, $location) {
"use strict";
$rootScope.$on('$locationChangeStart', function(event, next, current) {
if (next.indexOf('login') !== -1) {
if (loggin === 1) {
event.preventDefault();
$location.path('/home');
}
}
});
}]);
不确定它是否好看。
我想检查一下路由器中的内容。在某些情况下,我应该重定向到另一个页面。
我设置了路由器:
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 建议的 $locationChangeStart
。
app.run(['$rootScope', '$location', function($rootScope, $location) {
"use strict";
$rootScope.$on('$locationChangeStart', function(event, next, current) {
if (next.indexOf('login') !== -1) {
if (loggin === 1) {
event.preventDefault();
$location.path('/home');
}
}
});
}]);
不确定它是否好看。