требовать один директивный контроллер в другом

Вот как я пытался потребовать контроллер одной директивы в другом.

1) http://jsfiddle.net/Xarm2/1/

2) http://jsfiddle.net/82UKq/1/

В обоих случаях вы можете видеть в консоли firebug, что требуемый контроллер директивы является либо undefined, либо пустым объектом.

1) Как я могу получить доступ к «d1Cntrl» внутри директивы d2.

2) Пожалуйста, дайте мне знать один вариант использования, который потребует от меня контроллера директивы в другой директиве.


person Rajkamal Subramanian    schedule 03.03.2013    source источник


Ответы (2)


  1. Посмотрите этот отличный скринкаст от Джона Линдквиста о от директивы к директивному взаимодействию.

  2. Например, если у вас есть элемент ввода, к которому вы хотите применить две настраиваемые проверки, где одна проверка должна выполняться только в том случае, если первая проверка проходит успешно (например, проверка соответствия шаблону должна активироваться только в том случае, если элемент имеет значение).

person Stewie    schedule 03.03.2013

Мало кто думает, что я мог бы поместить это здесь

1) Директивы не создают свою собственную область действия, например. <superhero strength>The Hulk</superhero> <superhero flight speed strength>Superman</superhero> <superhero speed>The Flash</superhero>

эти три директивы будут иметь одну и ту же область действия, если мы явно не укажем scope:true или scope:{} в определении superhero. Если вы не создаете новый объем, то будет действовать последний супергерой.

2) Если мы создадим новую область на уровне superhero, эта же область будет совместно использоваться родительскими директивами, такими как strength, flight и т. д.

3) Если нам требуется директивный контроллер внутри другой директивы, API, определенный в директивном контроллере с помощью ключевого слова this, будет доступен требующей директиве. Обратите внимание, что методы, определенные в области контроллера $scope, не будут видны.

Пожалуйста, не стесняйтесь редактировать, если предложения составлены неправильно или пункты были неправильными.

person Rajkamal Subramanian    schedule 03.03.2013