问:例如,我的应用程序中有一个模块,并且我为它编写了指令,我想向我的应用程序添加更多模块,并且还想重用为另一个模块编写的现有指令。我怎样才能做到这一点。不仅适用于过滤器、配置等的模块。
当你声明一个模块时,你指定它的依赖。因此,如果您有这样的指令:
angular.module( 'moduleA', [] )
.directive( 'myDirective', function () {
// ...
});
您可以从另一个模块中要求该模块:
angular.module( 'moduleB', [ 'moduleA' ] );
数组参数 toangular.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。
这可能不是一个好主意。“观点”是官方记录。你的用例是什么?
问:如果我想在所有模块之间共享一个东西,我该怎么做。例如,我在我的应用程序的所有模块之外定义了一个变量,我只想在模块内部访问它们。这可能吗,我有这个疑问是因为它完全适用于单个作用域、共享作用域和 rootScope 等。
我不确定我明白你在问什么。但是,当您在模块中定义某些内容时,您可以通过要求它从任何其他地方访问它,如上所述。但是在 AngularJS 应用程序中,应该有“所有模块之外”的任何东西——所有东西都应该在一个模块中,因为否则它就定义在全局范围内(例如window
),这是一种不好的做法。
为了更好地了解如何构建模块以获得巨大的利益,请查看我的ngBoilerplate
kickstarter: http: //ngbp.github.io/ngbp/。模块结构专为代码重用而设计,并在实践中演示了其中的许多概念。
随意详细说明其中任何一个,我将修改回复。