【发布时间】:2014-06-06 00:10:51
【问题描述】:
假设我使用 angularjs ui-router 设置了两个状态:
.state('branding', {
url: "/{branding}",
controller: 'BrandingCtrl',
templateUrl: '/app/Branding.html'
})
.state('branding.index', {
url: "/index",
controller: 'IndexCtrl',
templateUrl: '/app/Index.html'
})
在我的BrandingCtrl 中,我正在设置页面的详细信息,并验证用户是否有权访问此版本的站点。如果他们没有访问权限,我可以调用 $state.go('someotherstate') 并将他们送走
如果有人访问 /badbranding/index,BrandingCtrl 将确定用户无权访问并更新状态。但是,IndexCtrl 仍然会执行,即使我已经更改了父控制器中的状态并且它应该不再适用。
如何告诉 ui-router 取消任何嵌套状态的执行?
【问题讨论】:
标签: javascript angularjs angular-ui-router