簡體   English   中英

在延遲加載的模塊中包含依賴項時,無法初始化ocLazyLoad錯誤

[英]unable to init ocLazyLoad error while including dependency inside a lazyloaded module

我正在嘗試逐步加載模塊。 我制作了一個文件“ lazyModule.js”,並使用oclazyLoad加載了此模塊。 當我在此lazyModule.js中定義myModule.js依賴項時,它將在控制台上引發以下錯誤:

引導過程中未找到模塊,無法啟動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已通過引導角度模塊加載,則不應將oc.lazyLoad包括在新角度模塊創建的角度相關性中。 每當新模塊依賴項中包含oc.lazyLoad時,它都會嘗試對其進行初始化。

lazyModule.js

   define([
        'angular',
        'components/infrastructure/myModule'
    ], function(angular) {
        'use strict';
         var dependentModules = [
         try {
           angular.module('oc.lazyLoad');
         } catch (moduleError) {
             dependentModules.push('oc.lazyLoad');
         }
         return angular.module('lazyModule', dependentModules);
    });

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM