在angularjs中定义自定义指令的方法有多少?

时间:2016-04-26 07:57:47

标签: angularjs

我已经阅读了如何定义自定义指令并找到以下方法:

angular.module("myApp", [])
    .directive("directiveName", function () {
        return {
            // implementation code will go here
        }
    });

但最近我找到了另一种定义自定义指令的方法,如下所示:

angular.module("exampleApp", [])
    .directive("directiveName", function () {
        return function (scope, element, attrs) {
            // implementation code will go here
        }
    });

我很想知道哪种方式比另一种更好更快? (如果可能,请描述两者的优缺点),还有更多方法来定义自定义指令吗?

1 个答案:

答案 0 :(得分:0)

在指令中返回函数只是完整定义中链接函数的简写 因此,如果您指定的不仅仅是链接函数,那么您需要编写很长的路径:

angular.module("myApp", []).
    directive("directiveName", function() {
        return {
            link: function(scope, element, attrs) {
                // implementation code will go here
            },
            templateUrl: "template.html", // for example
        };
    })
;

相反,如果您只需要链接功能,则可以使用短和版本:

angular.module("myApp", [])
    .directive("directiveName", function() {
        return {
            // implementation code will go here
        }
    })
;