3

私は ui-router と ocLazyLoad の初心者で、おそらくこの質問は簡単に解決できるかもしれませんが、ここに書いているのは、ブログを検索する運がなかったからです。私のアプリは ocLazyLoad で正常に動作しています。

これは、メインのapp.jsクラスの構成です。

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'
        });

}]);

今、私は同じクラスにこれ以上状態を置くのをやめたいと思っています。そうしないと、私の app.js は数か月で巨大になります。そこで、ここから「home-module」と呼ばれる別のモジュールにいくつかの状態を削除しました。

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'
            });

}]);

しかし、私はこのエラーが発生しています:ファイルhome.jsCould not resolve 'home.board' from state 'ini'が以前にロードされていないため、これは完全に理にかなっています。どうすればこれを解決できますか?.

アプリのすべての状態を独自のメイン app.js クラスに書き込むのが唯一の方法ですか?

4

1 に答える 1

0

状態異常です。解決しない。コントローラーから ocLazyLoad を使用することを好みます。そこでは、より多くの制御が可能です

.controller("MyCtrl", function($ocLazyLoad) {
    $ocLazyLoad.load('views/home/home.js');
});
于 2016-08-28T20:08:39.927 に答える