Javascript 我可以将一个模块动态注入另一个模块吗?

Javascript 我可以将一个模块动态注入另一个模块吗?,javascript,angularjs,Javascript,Angularjs,假设我在两个单独的文件中有两个模块: 第一个是针对每个人的,称之为myApp: var myApp = angular.module('myApp', ['dependency.one', 'dependency.one']); 在另一个文件中:admin.js我有另一个管理管理功能的模块 var myAdmin = angular.module('myAdmin', ['dependency.three', 'dependency.four']); admin.js仅为登录的管理员用户提供

假设我在两个单独的文件中有两个模块:

第一个是针对每个人的,称之为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在这种情况下似乎不起作用。

否,在AngularJS的当前(1.x)版本中不起作用。当应用程序启动时,需要提供应用程序中使用的全套模块。因此,您必须重新引导整个应用程序,以考虑其他模块。

为了将来的搜索者的利益,我自己回答这个问题

模块的.required属性保存依赖项。通过按下此属性,可以需要其他模块

在这个admin.js文件中,我可以简单地写:

var myAdmin = angular.module('myAdmin', ['dependency.three', 'dependency.four']);
myApp.requires.push('myAdmin');
myApp现在将接收myAdmin


模块必须在引导之前进行配置,因此您不能在运行时插入其他依赖项。在启动应用程序之前,必须包含它们。

var injector=angular.injector(['myModule','ng'])怎么样;请参阅文档,这将是一个有趣的解决方案。我不认为这会将整个管理模块注入到应用程序中,但这只会创建一个带有一组提供的模块的新注入器/应用程序。它不会将模块添加到现有的应用程序中。好的,我明白了!谢谢啊,真遗憾。对于不想将管理员JavaScript发送给非管理员用户的问题,有没有推荐的解决方案?请注意,我在应用程序启动之前包含了这两个JavaScript文件。您只需创建两个SPA,一个是管理员,另一个是普通用户。AngularJS 2.0应该有很大的改进。我可以这样做,并且有一个单独的管理系统。我的目标是在单击编辑链接时使编辑表单从页面顶部向下滑动。如果我只在一个模块中包含所有Javascript,这将很容易,但如果将一堆Javascript发送给一个永远不会使用它的用户,那感觉就不对了。必须有一种方法将其他依赖项注入到模块中。啊哈,有模块的必需属性,请参见此处: