AngularJS,ocLazyLoad和ui-router:如何在主app.js类没有集中“状态”的情况下按需加载

我在ui-router和ocLazyLoad上很新,可能这个问题可能很容易解决,但是我写在这里是因为我没有在博客上search。 我的应用程序现在正在运行ocLazyLoad。

这是我的主要app.js类的configuration:

angular.module('me', [ 'ui.router', 'oc.lazyLoad', 'me.partials.footer', 'me.partials.header' ]) .config(['$stateProvider', '$urlRouterProvider', function ($stateProvider, $urlRouterProvider) { $urlRouterProvider.otherwise('/ini') $stateProvider .state('ini', { // Login url: '/ini', templateUrl: 'views/ini/ini.html' }) .state('signin', { url: '/signin', templateUrl: 'views/signin/signin.html' }) .state('home', { url: '/home', templateUrl: 'views/home/home.html', resolve: { home: function($ocLazyLoad) { return $ocLazyLoad.load( { name: "views.home", files: [ "views/home/home.js", ] } ); } } }) .state('home.profile', { url: '/profile', templateUrl: 'views/profile/profile.html' }) .state('home.board', { url: '/board', templateUrl: 'views/board/board.html' }); }]); 

现在我想停止在同一个class级上更多的州,否则我的app.js将在几个月内是巨大的。 所以我从这里删除了一些状态到我的其他模块,称为“主模块”:

home.js

 angular .module('views.home', [{ name: "views.home.controller", files: ["views/home/home-controller.js"] } ]) .config(['$stateProvider', '$urlRouterProvider', function ($stateProvider, $urlRouterProvider) { $stateProvider .state('home', { url: '/home', templateUrl: 'views/home/home.html', resolve: { home: function($ocLazyLoad) { return $ocLazyLoad.load( { name: "views.home", files: [ "views/home/home.js", ] } ); } } }) .state('home.profile', { url: '/profile', templateUrl: 'views/profile/profile.html' }) .state('home.board', { url: '/board', templateUrl: 'views/board/board.html' }); }]); 

我得到这个错误: Could not resolve 'home.board' from state 'ini' ,这是完全有道理的,因为文件home.js它没有被加载之前。 我该如何解决这个问题?

写我所有的应用程序状态在我独特的主要app.js类是唯一的方法?

这是国家的错误。 没有解决。 我更喜欢从我的控制器使用ocLazyLoad。 在那里我们有更多的控制

 .controller("MyCtrl", function($ocLazyLoad) { $ocLazyLoad.load('views/home/home.js'); });