问:例如,我的应用程序中有一个模块,并且我编写了指令
为此,我想在我的应用程序中添加更多模块,并且还想
重用为另一个模块编写的现有指令。我怎么能
实现这一目标。不仅适用于过滤器、配置等的模块。
当你声明一个模块时,你指定了它的依赖。所以如果你有这样的指令:
angular.module( 'moduleA', [] )
.directive( 'myDirective', function () {
// ...
});
您可以从另一个模块中要求该模块:
angular.module( 'moduleB', [ 'moduleA' ] );
angular.module 的数组参数是一个依赖列表。
问:我可以在模块中定义子模块吗?
模块在技术上都是独立的,但伪造它是非常常见的。所以我们可以用它的“子模块”来定义moduleA:
angular.module( 'moduleA.one', [] );
angular.module( 'moduleA.two', [] );
angular.module( 'moduleA', [
'moduleA.one',
'moduleA.two'
]);
开发人员/读者很清楚,moduleA.one 和 moduleA.two 是 moduleA 的一部分,但任何时候另一个模块依赖于 moduleA,它的两个子模块也将被包含在内。
但从技术上讲,这些都是独立的,因此moduleB 也可能需要moduleA.two。
问:如何动态添加控制器到元素,它不应该是
静态的,即通过 html 标记 ng-controller。
这可能不是一个好主意。 “观点”是官方记录。你的用例是什么?
问:如果我想在所有模块之间共享一个东西,我该怎么做.. 对于
例如,我在我的应用程序的所有模块之外定义了一个变量,并且
我只想在模块中访问它们。这可能吗,我有
这个疑问是因为它完全适用于个人范围,共享
scope 和 rootScope 等。
我不确定我是否理解您的要求。但是,当您在模块中定义某些内容时,您可以通过要求它从任何其他地方访问它,如上所述。但是在 AngularJS 应用程序中,应该有 anything “在所有模块之外” - 一切都应该在一个模块中,因为否则它会在全局范围内定义(例如window),这很糟糕练习。
要更好地了解如何构建模块以获得巨大的利益,请查看我的ngBoilerplate kickstarter:http://ngbp.github.io/ngbp/。模块结构专为代码重用而设计,并在实践中演示了其中的许多概念。
请随意详细说明其中任何一个,我会修改回复。