在我的Angular App中,我想通过依赖注入将两个模块注入我的App。所以:
var App = angular.module('App', ['ngModule1', 'ngModule2']);
var module1 = angular.module('ngModule1', ['App']);
var module2 = angular.module('ngModule2', ['App']);
但是,如果module2尚不存在或未正确实例化,该怎么办?我想做这样的事情:
var App = angular.module('App', ['ngModule1']);
//Test if module2 exists
try {
var temp = $injector.get('ngModule2');
} catch (e) {
console.log('Injector does not have Module 2!');
}
//Do something with temp to add it in App
上面的方法无效,但我想知道在测试后添加模块的正确方法是否存在
答案 0 :(得分:2)
可以测试并添加它。
var modules = ['existingModule', 'nonexistentModule'].filter(function (module) {
try {
return !!angular.module(module);
} catch (e) {}
});
angular.module('module', modules);
也可以重新定义模块,但在定义组件并引导它之前执行此操作。
var app;
try {
app = angular.module('app', ['existingModule', 'debatableModule']);
} catch (e) {
app = angular.module('app', ['existingModule']);
}
但它可能(并且很可能确实)表明应用程序设计出了问题。
$injector
不能达到此目的,并且无法将模块“注入”现有模块。