ocLazyLoad配合ui-router延迟加载controller,controller提示 not a

最近学习使用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的理解以及引入组件的熟悉度还很不够,路漫漫其修远兮~~~

你可能感兴趣的:(ocLazyLoad配合ui-router延迟加载controller,controller提示 not a)