我试图逐步加载模块。我创建了一个文件'lazyModule.js',并使用oclazyLoad加载这个模块。当我在这个lazyModule.js定义myModule.js依赖,洒在控制台以下错误:无法初始化ocLazyLoad错误,但在一个延迟加载的模块中包含依赖关系
无模块引导过程中发现,无法初始化ocLazyLoad。当您使用ocLazyLoad时,您应该始终使用ng-app指令或angular.boostrap。
lazyModule.js
define([
'angular',
'components/infrastructure/myModule'
], function(angular) {
'use strict';
return angular.module('lazyModule',
[
'myModule'
]);
});
myModule.js
define([
'angular',
'ui-bootstrap',
'ocLazyLoad'
], function initModule(angular) {
'use strict';
angular.module('html.myModule', [ 'oc.lazyLoad']);
});
这是怎么了延迟加载lazyModule.js:
initializeLazyModule: function(scope) {
var template;
try{
// checking for existing module
angular.module('lazyModule');
isLoaded=true;
}catch(err) {
isLoaded=false;
}
if (!isLoaded) {
return require(['apps/controlCenter/lazyModule'], function() {
$ocLazyLoad.inject('lazyModule');
ControlCenterUtilities.checkAndApplyScope(scope);
$compile($('#my-module'))(scope);
});
}
else {
return;
}
}
虽然,当我从myModule.js中删除oc.lazyLoad模块的依赖项时,控制台错误消失。
但我没有选择从myModule中删除oc.lazyload模块依赖项,因为它会中断一些其他组件直接消耗我的模块而不需要加载oclazyload。
它基本上是因为oc.lazyload模块被注入两次而发生的。 请帮忙
我已经找到解决这个。 oc.lazyLoad不应包含在新角度模块创建的角度依赖性中 \t \t \t如果oc.lazyLoad已通过引导角度模块加载。 \t \t \t oc.lazyLoad尝试初始化自己,只要它包含在新的模块依赖项中。 lazyModule.js – jass