在UI路由器中调用子状态时触发了无限循环
Infinite loop triggered when calling child state in UI-Router
我在UI路由器的父控制器中有以下配置。
$stateProvider.state('store', {
abstract: true,
url: '/:store',
resolve: {
Store : ['StoreService', '$stateParams', '$state', '$rootScope', function (StoreService, $stateParams, $state, $rootScope) {
return StoreService.getStoreByCode($stateParams.store).then(
function (response){
$rootScope.Store = response.data;
return response.data;
},
function (response){
$state.go('store.404', $stateParams);
}
);
}]
},
templateUrl: 'app/app.html'
});
然后在一个子配置中,我有:
$stateProvider
.state('store.404', {
parent:'store',
url: '/store.404',
template: '<h1>Whoa! 404!</h1>'
});
问题是,当resolve语句中的promise被拒绝时,$state.go('store.404')
会触发无限循环并导致浏览器崩溃。
这是因为父级每次尝试转到该子级状态时都在加载和解析吗?有没有一种干净的方法可以在子状态上不触发解析语句?
。。。这是因为父级每次尝试转到该子级状态时都在加载和解析吗
是的。
。。。有没有一种干净的方法可以在子状态上不触发解析语句
无
解决方案是,像"404"这样的状态应该是独立的、特殊的。这样,它将始终可用,没有任何限制或错误处理。
即,将"404"状态移动到任何父级之外。
相关文章:
- 使用滚动溢出-x进行无限循环
- 从index.html调用函数,该函数无限循环
- 使用jQuery无限循环播放HTML页面幻灯片
- Grunt任务没有加载,获得无限循环
- 如何在不进入无限循环的情况下将网站重定向到Facebook画布URL
- Backbone+RequireJS+Mediator模式导致视图逻辑短路和无限循环
- jQuery无限循环,动画化许多项目
- 如何避免试图用php+jquery显示php起始页的无限循环
- 6502仿真增强型基本无限循环$C000至$E0ED
- Angular ngRoute导致无限循环和堆栈溢出
- Jquery:无限循环和暂停
- 数组数组:无限循环
- MeteorJS使用流星调用和流星方法时的无限循环
- 如何无限循环数据集字符串
- jquery在无限循环中运行
- 遍历对象会导致无限循环
- 为什么内部Javascript循环会阻止外部循环中断(即无限循环)
- React-Redux:当连接到处于状态的数组时无限循环
- 试图让我的幻灯片插件无限循环(通过回到第一个状态)
- 在UI路由器中调用子状态时触发了无限循环