返回的函数在指令声明中做了什么

时间:2014-08-14 17:21:54

标签: angularjs directive

我正在学习AngularJS中的指令创建。

在官方文档中,它说:

Best Practice: Prefer using the definition object over returning a function.

但它从未给出一个返回函数的例子。它总是给出返回定义对象的示例。

问题:当您返回函数而不是定义对象时,指令会执行什么操作?

1 个答案:

答案 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) { ... }
});