Angularjs AngularUI路由器-嵌套抽象路由不工作

Angularjs AngularUI路由器-嵌套抽象路由不工作,angularjs,angular-ui-router,Angularjs,Angular Ui Router,我正在为AngularJS应用程序修改一个名为的模板,并使用UI路由器配置嵌套视图。似乎一切都准备就绪,但嵌套的路由“app/email”不起作用,每当它被称为UI路由器时,就会触发“app/home”语句 我的代码是: function($stateProvider, $urlRouterProvider, $ocLazyLoadProvider) { $urlRouterProvider .otherwise('/app/home');

我正在为AngularJS应用程序修改一个名为的模板,并使用UI路由器配置嵌套视图。似乎一切都准备就绪,但嵌套的路由“app/email”不起作用,每当它被称为UI路由器时,就会触发“app/home”语句

我的代码是:

function($stateProvider, $urlRouterProvider, $ocLazyLoadProvider) {
        $urlRouterProvider
            .otherwise('/app/home');

        $stateProvider
            .state('app', {
                abstract: true,
                url: '/app',
                templateUrl: "tpl/app.html"
            })
            .state('app.home', {
                url: '/home',
                templateUrl: "tpl/home.html",
                controller: 'HomeCtrl',
                resolve: {
                    deps: ['$ocLazyLoad', function($ocLazyLoad) {
                        return $ocLazyLoad.load([

                            ], {
                                insertBefore: '#lazyload_placeholder'
                            })
                            .then(function() {
                                return $ocLazyLoad.load([
                                    'assets/js/controllers/home.js'
                                ]);
                            });
                    }]
                }
            })
            .state('app.email', {
                abstract: true,
                url: '/email',
                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'
            });

    }

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

有关抽象状态提供程序的更多详细信息,请选中此项

您可以像下面的代码一样使用电子邮件状态作为摘要

    .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'
            });
.state('app.email'{
摘要:没错,
url:“/email”,
模板:“”
})
.state('app.email.default'{
url:“/”,
templateUrl:'tpl/apps/email/email.html',
决心:{
deps:['$ocLazyLoad',函数($ocLazyLoad){
返回$ocLazyLoad.load([
“menuclipper”,
“所见即所得HTML5”
], {
insertBefore:“#lazyload_占位符”
})
.然后(函数(){
返回$ocLazyLoad.load([
'资产/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'
});

似乎是一个类似的问题: