最近学习使用ocLazyLoad,加载controller时,报错not a。贴代码:
//state
$stateProvider.state('user.user', {
url: '/user',
views: {
'': {
controller: 'userC',
templateUrl: 'tpl/user/user'
}
},
resolve:{
loadUserC: ["$ocLazyLoad", function ($ocLazyLoad) {
return $ocLazyLoad.load('/app/user/userC.js');//js文件有成功加载进来
}]
}
})
//userC.js
(function(){
'use strict';
myApp.controller('userC', [
'$scope',
'userS',
function ($scope) {
console.log('userC');
//...
}
])
})()
// app在此前加载的js中已经定义过。var app= angular.module('app', []);
报错: Argument 'PerformanceCtrl' is not a
后来翻博客才发现:
- 当我创建一个新的module时,$ocLazyLoad.load()加载进来的component registered成功,如下
angular.module('testtest', []).controller('PerformanceCtrl', [
//...
])
- 由上边,我想到angular的另一个点,当module不带参时是getter,所以尝试如下:
angular.module('order').controller('PerformanceCtrl', [
//...
])
ocLazyLoad debug 提示ocLazyLoad.moduleReloaded order,这样perfomance下的component被load进来,register也成功。
纠结啊,对angular的理解以及引入组件的熟悉度还很不够,路漫漫其修远兮~~~