我的应用程序中有以下父路由:
.state('app',{
url: '/app',
templateUrl: 'views/app.html',
resolve: loadSequence('modernizr','moment'),
abstract: true,
css:['assets/css/theme-1.css'],
resolve: {
loginRequired: loginRequired
}
})
解析在父节点设置,因此所有子节点将继承loginRequired
。我如何设置一个异常,从父母的孩子之一,其中loginRequired
可以被忽略。以下是我的子路由。
.state('app.passwordreset',{
url: '/app/reset/:token',
templateUrl: 'views/app_resetpass.html',
resolve: loadSequence('modernizr','moment','resetCtrl'),
css:['assets/css/theme-1.css']
})
谢谢! !
可以做到这一点的一种方法是插入一个只负责登录解析的中间状态。例如:
.state('app', { ... })
.state('app.restricted', {
abstract: true,
url: '',
template: '<div ui-view=""></div>',
resolve: {
loginRequired: loginRequired
}
})
.state('app.restricted.somechild', { ... })
.state('app.passwordreset', { ... });
这样,任何需要身份验证的子节点只需要在状态名之前插入app.restricted
。您从本质上将解析需求与app
父状态解耦,使其能够在必要时应用。