2015-08-21 3 views
-2

Я видел это в пользовательской директиве.Функция require in angularjs

require: '^create' 

Я не могу этого понять. Можете ли вы объяснить мне, что нужно в angularjs?

+1

Пожалуйста, прочитайте документацию https://docs.angularjs.org/api/ng/service/$compile – Girafa

+1

см http://stackoverflow.com/вопросы/15672709/как-на-требовать-а-контроллер-в-ан-angularjs директивы –

ответ

1

require

  • Требовать принимает имя строки (или массив строк) директивы (ы), чтобы пройти в.
  • Если используется массив, нагнетаемый аргумент будет массив в соответствующий заказ.
  • Если такая директива не найдена, или если директива не имеет контроллера, то возникает ошибка (если не указана никакая функция связи, и в этом случае проверка ошибок будет пропущена).

  • Имя может начинаться с префикса:

(без префикса) - Найдите нужный контроллер на текущий элемент. Выбросьте ошибку, если она не найдена.

? - Попытайтесь найти требуемый контроллер или передать null в ссылку fn, если не найден.

^- Найдите необходимый контроллер, выполнив поиск элемента и его родителей. Выбросьте ошибку, если она не найдена.

^^ - Найдите требуемый контроллер, выполнив поиск родителей элемента. Выбросьте ошибку, если она не найдена.

?^- Попытка найти необходимый контроллер, выполнив поиск элемента и его родителей или передав значение null в ссылку fn, если не найден.

? ^^ - Попытайтесь найти требуемый контроллер, выполнив поиск родительских элементов или передайте null в ссылку fn, если не нашли.

Требовать контроллер

Если вы хотите, чтобы один и тот же экземпляра контроллера, то вы используете require.

require обеспечивает наличие другой директивы, а затем включает его контроллер в качестве параметра функции связи. Поэтому, если у вас есть две директивы для одного элемента, ваша директива может требовать от наличия другой директивы и получения доступа к ее методам управления. Для этого обычно используется ngModel.

^require, с добавлением каретки, проверяет элементы выше директивы в дополнение к текущему элементу, чтобы попытаться найти другую директиву. Это позволяет создавать сложные компоненты, где «подкомпоненты» могут прекрасно взаимодействовать с родительским компонентом через свой контроллер. Примеры могут включать вкладки, где каждая панель может связываться с общими вкладками для обработки переключения; набор аккордеона может гарантировать, что только один открыт одновременно; и т. д.

В любом случае вам нужно использовать две директивы вместе, чтобы это работало. require - способ связи между компонентами.

Проверьте страницу Руководство директив для получения дополнительной информации http://docs.angularjs.org/guide/directive

Смежные вопросы