AngularUI Router - 嵌套的抽象路由不起作用

时间:2016-03-26 03:43:31

标签: angularjs angular-ui-router

我正在为AngularJS应用调整名为Pages的模板,并且我正在使用UI路由器配置嵌套视图。似乎一切都已到位,但嵌套路线" app / email"无论什么时候被称为UI路由器触发器" app / home"作为另外的陈述。

我的代码是:

name, rate
Google, 10%
Google, 20%
Uber, 25%
...

1 个答案:

答案 0 :(得分:0)

抽象状态可以具有子状态但不能自行激活。 “抽象”状态只是一个无法转换的状态。当其中一个后代被激活时,它会被隐式激活。

检查此link以获取有关State Provider中抽象的更多详细信息。

您可以将电子邮件状态用作抽象,如下面的代码。

    .state('app.email', {
                abstract: true,
                url: '/email',
                template : '<ui-view></ui-view>'
    })
    .state('app.email.default', {
                url: '/',
                templateUrl: 'tpl/apps/email/email.html',
                resolve: {
                    deps: ['$ocLazyLoad', function($ocLazyLoad) {
                        return $ocLazyLoad.load([
                                'menuclipper',
                                'wysihtml5'
                            ], {
                                insertBefore: '#lazyload_placeholder'
                            })
                            .then(function() {
                                return $ocLazyLoad.load([
                                    'assets/js/apps/email/service.js',
                                    'assets/js/apps/email/email.js'
                                ])
                            });
                    }]
                }
            })
            .state('app.email.inbox', {
                url: '/inbox/:emailId',
                templateUrl: 'tpl/apps/email/email_inbox.html'
            })
            .state('app.email.compose', {
                url: '/compose',
                templateUrl: 'tpl/apps/email/email_compose.html'
            });