是否可以使用相同的模块名称创建两个指令? 有这两个文件
angular.module('fabTemplate', [])
.directive('fabGallery', [function () {
....
和
angular.module('fabTemplate', [])
.directive('fabVideo', [function () {
...
第二条指令不会被识别。
<fab-video />
不呈现任何内容。通过更改模块名称可以工作。
AngularJS的documentation says表示参数名称(模块“方法”的第一个参数)
要创建或检索的模块的名称。
我想那应该工作......:S Angular不会在控制台中打印任何内容
答案 0 :(得分:17)
如果要检索模块,则必须仅使用angular.module()的第一个参数。
requires(可选)[Array。]:如果指定,则创建新模块。如果未指定,则检索模块以进行进一步配置。
您的代码应该是:
//Module definition:
angular.module('fabTemplate', []);
//Get the module and add the first directive:
angular.module('fabTemplate').directive('fabGallery', function () {});
//Get the module and add the second directive:
angular.module('fabTemplate').directive('fabVideo', function () {});
答案 1 :(得分:5)
它也写在文档的开头:
传递两个或多个参数时,会创建一个新模块。如果只传递一个参数,则检索现有模块(作为模块的第一个参数传递的名称)。
如果要检索模块,则应仅在第二次传递模块名称,而不是数组。
所以,你应该写:
angular.module('fabTemplate', [])
.directive('fabGallery', [function () {
....
}]);
angular.module('fabTemplate')
.directive('fabVideo', [function () {
....
}]);
请注意,您可以写:
angular.module('fabTemplate', [])
.directive('fabGallery', [function () {
....
}])
.directive('fabVideo', [function () {
....
}]);
或者
var fabTemplate = angular.module('fabTemplate', []);
fabTemplate.directive('fabGallery', [function () {
....
}]);
fabTemplate.directive('fabVideo', [function () {
....
}]);
答案 2 :(得分:2)
您可以在一个模块中拥有多个指令。
angular.module('myModule', []).directive('first', function() {
angular.module('myModule').directive('second', function() {
您必须确保第一个声明中的方括号不在其他声明中。请参阅此帖:AngularJS module.directive not responding consistently
答案 3 :(得分:1)
根据您链接的文档,当您将第二个参数添加到module
方法时,它会明确地调用模块的创建,而不是检索;实际上,这个参数是可选的,所以当你只想检索现有的模块时,你应该可以这样做:
angular.module('fabTemplate')
.directive('fabVideo', [function () {