Angularjs ui路由器定义延迟加载模块的状态
我正在处理一个访问受限的应用程序。为了改进文件,我尝试将我的一些状态移动到它所属的模块。我会尽力解释一下情况 假设我有两个模块:Angularjs ui路由器定义延迟加载模块的状态,angularjs,angular-ui-router,Angularjs,Angular Ui Router,我正在处理一个访问受限的应用程序。为了改进文件,我尝试将我的一些状态移动到它所属的模块。我会尽力解释一下情况 假设我有两个模块: 应用程序模块:公共模块,任何人都可以访问 用户模块:重新限制模块,只有登录的用户才能访问 我也有一些公共状态,没什么问题。代码示例: .state('login', { url: '/Login', ... }) .state('home', { url: '/Home', ... }) 但我也有其他状态,只有在用户登录时才可用。
- 应用程序模块:公共模块,任何人都可以访问
- 用户模块:重新限制模块,只有登录的用户才能访问
.state('login', {
url: '/Login',
...
})
.state('home', {
url: '/Home',
...
})
但我也有其他状态,只有在用户登录时才可用。例如:
.state('user', {
abstract: true,
url: '/User',
...,
data: {
requireLogin: true
},
resolve: {
lazyLoad: function($ocLazyLoad) {
// This is where I'm lazyloading the restricted module
}
}
})
.state('profile', {
parent: 'user',
url: '/Profile',
...,
})
此时,我的所有状态都在公共模块(app.module)内,包括那些受限状态。原因是,如果用户已登录并尝试访问其配置文件(首次访问),例如:http://myapp.com/User/Profile
user.module尚未加载,因此它不是有效状态
是否有一种方法可以将我的受限状态移动到该特定模块,并且在模块延迟加载后仍然能够访问该模块