Что делает возвращаемая функция в объявлении директивы

Я изучаю создание директив в AngularJS.

В официальных документах написано:

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

Но он никогда не приводит пример возврата функции. Он всегда дает примеры, возвращающие объект определения.

Вопрос. Что делает директива, когда вы возвращаете функцию вместо объекта определения?


person Luis Masuelli    schedule 14.08.2014    source источник
comment
Это функция postlink... Посмотрите этот ответ... stackoverflow.com/a/14565177/3199781   -  person Anthony Chu    schedule 14.08.2014
comment
ты :Д. я узнал что-то новое :D   -  person Luis Masuelli    schedule 14.08.2014


Ответы (1)


Да, в документация директивы ничего не говорит о возврате функции.

Но в этом документе $compile говорится:

Комплексный 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) { ... }
});
person runTarm    schedule 14.08.2014