ui路由器在模块延迟加载时定义状态

时间:2017-05-16 18:33:01

标签: angularjs angular-ui-router

我正在处理限制访问的应用程序。为了改进文件我试图将我的一些状态移动到它所属的模块。我试着解释一下情况。

我们说我有2个模块:

  • app.module :公共模块,任何人都可以访问
  • user.module :Resticted模块,只有已登录的用户才能访问

我也有一些公开的状态,没有错。代码示例:

.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尚未加载,那么&# 39;不是有效状态。

有没有办法可以将我的受限状态移动到该特定模块,并且在模块延迟加载后仍能够访问它?

0 个答案:

没有答案