根目录下定义了总控制文件app.js
然后又在不同目录的子文件夹下定义了页面所用的controller文件,如product.js等等
在app.js中声明的代码大致如下(节选)
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,并在相应页面上增加了ng-controller="名称"。
并在相应页面引入的js中,定义了该controller,如以下代码(pages/home.js)所示:
sdWan.controller('homeCtrl', function ($scope) {}) // 无法定义
console.log(sdWan) // 正常打印
而且这些JS确实是被加载到文档中的,奈何在controller里的代码无法执行,并且会报
[$controller:ctrlreg] The controller with the name 'homeCtrl' is not registered.
在此文件下console.log(sdWan)是可以获取到sdWan的。但是定义controller就会出现问题。
请问我该怎么解决?
谢谢了。
return $ocLazyLoad.load({
});
// 在你的files前面加上你的主应用模块的名称