0

我在问自己,在 AngularJS 中定义指令时,你可以在语句之前添加什么内容?return

angular.module('app').directive('myDir', function() {
    // What can you do here?
    return {
        restrict: 'E',
        link: function(scope, element) {
            // do things
        }
    };
});

所以一些普遍的问题是:

1. 你可以在那里做什么?
2. 什么只能在那里发生?
3. 里面不应该做什么?


我发现有用的一件事是您可以在其中存储变量或函数,然后您可以在指令的定义中使用它们,但我想听听其他一些建议。

4

1 回答 1

0

好吧,因为还没有其他人回答……正如我在评论中提到的,理解指令wiki 页面有一些有用的信息。

第一次遇到指令时,Angular 会运行一次指令函数。所以你放在这里的任何东西都只会被执行一次(或者如果指令没有在你的应用程序中的任何地方使用,可能会执行零次。)所以,如果可以在所有指令实例之间共享某些东西,你可以把它放在这里:functions,directive-全局变量、一次性初始化等

请注意,您在此处放置的任何功能都将相当有限。他们将无法访问范围或元素或属性——除非您将它们作为参数传递。出于这个原因,编译或链接函数使用的函数通常放在编译或链接函数中,因为由于 JavaScript 闭包,它们将可以访问范围、元素和属性。指令页面上的两个示例指令执行此操作。

于 2013-03-20T14:44:01.843 回答