AngularJS $state不会改变视图
AngularJS $state does not change view
在我的 AngularJS 应用程序中的 run() 函数中,如果用户未登录,我想将用户发送到登录页面。这是代码:
.run(['$state', function($state)
{
$state.go('signin')
.then(function(promise){},
function(reject)
{
console.log(reject)
}
);
}]);
在控制台中,我得到以下内容:
Error: transition superseded {stack: (...), message: "transition superseded"}
这两种$state.transitionTo('signin')
都不起作用。有谁知道为什么会发生这种情况,我从未遇到过这种情况。
我认为您应该在$stateProvider
中检查身份验证而不是run()
。你可以做这样的事情:
$stateProvider
.state('auth', {
abstract: true,
resolve: {
user: ['auth', '$q', function (auth, $q) {
if (auth.isAuthenticated()) {
//...
} else {
//...
}
}]
}
})
我认为您的问题可能是状态仍未加载,因此您无法进入该状态...
一种解决方案是设置 timeout 0,以便在堆栈为空后运行。
试试这个:
.run($timeout, $state, ...) {
$timeout(function() {
$state.go('signin');
},0);
或类似的东西
参考自 :
module.run() 和 $state.go() angularJS
相关文章:
- javascript模式下的asp.net网格视图获胜'不要执着于改变索引
- Ajax响应并没有改变我的视图模型
- 当模型更新时,backbone和knockout如何使视图改变
- 当变量改变时,在AngularJS中更新视图
- 当视图模型属性改变复选框值时被通知
- windows 8应用程序CSS列表视图改变内联样式
- 在backbone.js中为改变主视图中的位置添加子视图
- 如何在改变视图后维护$scope中的数据?
- AngularJs的Url会改变,但旧的视图是通过ui-router加载的
- 当link只是"#"时,防止routeparams改变视图
- Angularjs改变了窗口大小的视图
- Angular:在改变视图时禁用滚动到顶部
- 在angularJS中调用ajax后改变视图
- 带有改变视图的Reactjs组件
- Angular.JS:视图共享同一个控制器,当改变视图时,模型数据会重置
- 流星关于改变视图和把数组集合的问题
- Angular在作用域中改变对象不会改变视图
- AngularJS $state不会改变视图
- 在ui-select angularjs中,当作用域改变时,无法改变视图
- Angular Js -改变视图不起作用