我正在学习AngularJS中的指令创建。
在官方文档中,它说:
Best Practice: Prefer using the definition object over returning a function.
但它从未给出一个返回函数的例子。它总是给出返回定义对象的示例。
问题:当您返回函数而不是定义对象时,指令会执行什么操作?
答案 0 :(得分:2)
是的,directive documentation没有提及有关返回函数的任何内容。
但是,这$compile documention确实说:
综合指令API
指令有许多不同的选项。
差异在于工厂功能的返回值。您可以返回定义指令属性的“指令定义对象”(见下文),也可以返回
postLink
函数(所有其他属性都具有默认值)。
下面有一个例子(见底部的评论)。
var myModule = angular.module(...);
myModule.directive('directiveName', function factory(injectables) {
var directiveDefinitionObject = {
link: function postLink(scope, iElement, iAttrs) { ... }
};
return directiveDefinitionObject;
// or
// return function postLink(scope, iElement, iAttrs) { ... }
});