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尚未加载,因此它不是有效状态

是否有一种方法可以将我的受限状态移动到该特定模块,并且在模块延迟加载后仍然能够访问该模块