AngularJS具有相同模块名称的两个指令

ian*_*naz 12 angularjs

是否可以创建具有相同模块名称的两个指令?有这两个文件

angular.module('fabTemplate', [])
    .directive('fabGallery', [function () {
....
Run Code Online (Sandbox Code Playgroud)

angular.module('fabTemplate', [])
    .directive('fabVideo', [function () {
...
Run Code Online (Sandbox Code Playgroud)

第二条指令不会被承认.

<fab-video />
Run Code Online (Sandbox Code Playgroud)

没有呈现任何东西.通过更改模块名称可以工作.

AngularJS的文档说参数名称(模块"方法"的第一个参数)

要创建或检索的模块的名称.

我想那应该工作......:S Angular不会在控制台中打印任何东西

rvi*_*cio 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 () {});
Run Code Online (Sandbox Code Playgroud)


Bet*_*aba 5

它也写在文档的开头:

传递两个或多个参数时,会创建一个新模块.如果只传递一个参数,则检索现有模块(作为模块的第一个参数传递的名称).

如果要检索模块,则应仅在第二次传递模块名称,而不是数组.

所以,你应该写:

angular.module('fabTemplate', [])
    .directive('fabGallery', [function () {
        ....
    }]);

angular.module('fabTemplate')
    .directive('fabVideo', [function () {
        ....
    }]);
Run Code Online (Sandbox Code Playgroud)

请注意,您可以写:

angular.module('fabTemplate', [])
    .directive('fabGallery', [function () {
        ....
    }])
    .directive('fabVideo', [function () {
        ....
    }]);
Run Code Online (Sandbox Code Playgroud)

要么

var fabTemplate = angular.module('fabTemplate', []);

fabTemplate.directive('fabGallery', [function () {
    ....
}]);

fabTemplate.directive('fabVideo', [function () {
    ....
}]);
Run Code Online (Sandbox Code Playgroud)