鍍金池/ 問答/HTML/ [$controller:ctrlreg] 使用angularjs的路由及ocL

[$controller:ctrlreg] 使用angularjs的路由及ocLazyLoad導(dǎo)致控制器未定義的問題

根目錄下定義了總控制文件app.js
然后又在不同目錄的子文件夾下定義了頁面所用的controller文件,如product.js等等
在app.js中聲明的代碼大致如下(節(jié)選)

var sdWan = angular.module('sdWan', ['ngResource', 'ngRoute', 'oc.lazyLoad'])
    .config(function ($resourceProvider) {
        $resourceProvider.defaults.stripTrailingSlashes = false;
    })
    .config(['$routeProvider', '$locationProvider', function ($routeProvider, $locationProvider) {
        $routeProvider
            .when('/', {
                templateUrl: "pages/home.html",
                controller: "homeCtrl",
                resolve: {
                    deps: ['$ocLazyLoad',
                        function ($ocLazyLoad) {
                            return $ocLazyLoad.load({
                                files: [
                                    'pages/home.js'
                                ]
                            });
                        }
                    ]
                }
            })
            .when('/devicesManage/deviceList', {
                templateUrl: "pages/devicesManage/deviceList/deviceList.html",
                controller: "devCtrl",
                resolve: {
                    deps: ['$ocLazyLoad',
                        function ($ocLazyLoad) {
                            return $ocLazyLoad.load({
                                files: [
                                    'pages/devicesManage/deviceList/deviceList.js'
                                ]
                            });
                        }
                    ]
                }
            })

            .otherwise({
                redirectTo: '/'
            })
    }]);

如代碼所示,不同的頁面不同的controller,并在相應(yīng)頁面上增加了ng-controller="名稱"。
并在相應(yīng)頁面引入的js中,定義了該controller,如以下代碼(pages/home.js)所示:

sdWan.controller('homeCtrl', function ($scope) {})  // 無法定義
console.log(sdWan)  // 正常打印

而且這些JS確實(shí)是被加載到文檔中的,奈何在controller里的代碼無法執(zhí)行,并且會(huì)報(bào)
[$controller:ctrlreg] The controller with the name 'homeCtrl' is not registered.
在此文件下console.log(sdWan)是可以獲取到sdWan的。但是定義controller就會(huì)出現(xiàn)問題。

請(qǐng)問我該怎么解決?
謝謝了。

回答
編輯回答
疚幼

return $ocLazyLoad.load({

name:"你的APP" ,
files: [
    'pages/home.js'
]

});
// 在你的files前面加上你的主應(yīng)用模塊的名稱

2017年11月29日 05:11