假设我在两个单独的文件中有2个模块:
第一个适合所有人,称之为myApp:
var myApp = angular.module('myApp', ['dependency.one', 'dependency.one']);
在另一个文件中:admin.js
我有另一个管理管理功能的模块。
var myAdmin = angular.module('myAdmin', ['dependency.three', 'dependency.four']);
只有登录的管理员用户才能使用admin.js。
是否可以从admin.js
文件中将myAdmin模块注入myApp模块?或者,有没有办法包含所有myAdmin的东西,但只有在页眉中链接了admin.js文件,或者我没有看到一些替代解决方案? $ inject似乎在这种情况下不起作用。
答案 0 :(得分:1)
不,不在AngularJS的当前(1.x)版本中。当应用程序启动时,需要提供要在应用程序中使用的完整模块集。因此,您可以重新引导整个应用程序以考虑其他模块。
答案 1 :(得分:0)
我为了未来的搜索者的利益而自己回答这个问题。
模块的.required属性包含依赖项。您可以通过推送到此属性来要求其他模块。
在这个admin.js文件中,我只想写:
var myAdmin = angular.module('myAdmin', ['dependency.three', 'dependency.four']);
myApp.requires.push('myAdmin');
myApp现在将收到myAdmin。
模块必须在引导之前进行配置,因此您无法在运行时插入其他依赖项。在应用程序引导之前必须包含它们。