ocLazyLoad随机不加载组件

时间:2015-10-09 11:56:19

标签: javascript angularjs angular-ui-router oclazyload

我使用angular.ui.router来管理单页面应用程序中的路由。配置的一部分如下所示:

.state('app.mymodule', {
    url: '/mymodule',
    resolve: loadSequence('ngResource', 'MyModule'),
    template: '<div ui-view class="fade-in-up"></div>',
    abstract: true
})
.state('app.mymodule.overview', {
    url: '/overview',
    templateUrl: "assets/views/mymodule/overview.html",
    title: 'Overview',
    role: 'systemadmin',
    ncyBreadcrumb: {
        label: 'Overview'
    }
});

"MyModule"中的resolve是一个数组,用于定义angular.module和服务以及控制器的几个文件:

'MyModule': [
    'assets/js/mymodule/mymodule.js',
    'assets/js/mymodule/project/Project.js',
    'assets/js/mymodule/project/ProjectService.js',
    'assets/js/mymodule/project/ProjectCtrl.js',
],

现在,当我在我的应用程序中请求路由时,有时资源都已正确加载:

[Info] ocLazyLoad.componentLoaded – ["MyModule", "factory", "ProjectREST"] (3) (angular.min.js, line 107)
[Info] ocLazyLoad.componentLoaded – ["MyModule", "service", "ProjectService"] (3) (angular.min.js, line 107)
[Info] ocLazyLoad.componentLoaded – ["MyModule", "register", "ProjectCtrl"] (3) (angular.min.js, line 107)
[Info] ocLazyLoad.moduleLoaded – "MyModule" (angular.min.js, line 107)

但有时,日志看起来像这样:

[Info] ocLazyLoad.componentLoaded – ["MyModule", "factory", "ProjectREST"] (3) (angular.min.js, line 107)
[Info] ocLazyLoad.componentLoaded – ["MyModule", "service", "ProjectService"] (3) (angular.min.js, line 107)
[Info] ocLazyLoad.moduleLoaded – "MyModule" (angular.min.js, line 107)
[Info] ocLazyLoad.fileLoaded – "assets/js/mymodule/project/ProjectCtrl.js" (angular.min.js, line 107)

因此ocLazyLoad不会将控制器注册为控制器,而只是在模块完成后加载文件。这是随机发生的,代码中没有任何变化。当然,视图无法识别控制器,并且会抛出ng:areq (Bad Argument)错误..

这可能是什么问题? ocLazyLoader是异步加载而不是以正确的顺序加载吗?

PS:我正在使用的AngularJS模板ClipTwo引入了带路由和延迟加载的一般结构。

0 个答案:

没有答案