/ / Incapaz de iniciar o erro ocLazyLoad ao incluir a dependência dentro de um módulo lazyloaded - angularjs, lazy-loading, oclazyload

incapaz de iniciar o erro ocLazyLoad ao incluir a dependência dentro de um módulo lazyloaded - angularjs, lazy-loading, oclazyload

Eu estou tentando carregar módulos progressivamente. Eu fiz um arquivo ‘lazyModule.js’ e carreguei este módulo usando o oclazyLoad. Quando eu defino a dependência myModule.js neste lazyModule.js, ele lança o seguinte erro no console:

Nenhum módulo encontrado durante o bootstrap, incapaz de iniciar o ocLazyLoad. Você deve sempre usar a diretiva ng-app ou angular.boostrap quando use ocLazyLoad.

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"]);
});

Isto é como eu estou carregando preguiçosamente 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;
}
}

Embora, quando eu removo a dependência do módulo oc.lazyLoad de myModule.js, o erro do console desaparece.

Mas eu não tenho a opção de remover oc.Dependência do módulo lazyload do myModule, já que ele irá quebrar para algum outro componente que esteja consumindo meu módulo diretamente sem ter carregado o oclazyload já.

Está basicamente acontecendo porque o módulo oc.lazyload está sendo injetado duas vezes. Por favor ajude

Respostas:

0 para resposta № 1

Eu encontrei a solução para isso.

oc.lazyLoad não deve ser incluído na dependência angular da nova criação do módulo angular, se oc.lazyLoad já estiver carregado através do módulo angular de bootstrap. oc.lazyLoad tenta inicializar a si mesmo sempre que é incluído na nova dependência do módulo.

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);
});