AngularJS – Динамическое создание элементов, определяющих директивы

У меня есть такая настройка:

  • Контроллер c передает событие e
  • Директива d прослушивает e и e , записывает в DOM через append и при этом создает новые элементы, определяющие директиву d2 .

IE: element.append('')

  • Директива two никогда не называется Угловой
  • Когда я проверяю DOM (и отлаживаю), я вижу, что Controller c и директива d выполняют свои задания, и у меня есть новые элементы directiveTwo .

Чего не хватает? Что нужно сделать для запуска вызова директивы 2 после динамического создания этих элементов?

См. $compile . Вы можете использовать эту услугу аналогично этому:

 var newDirective = angular.element('
'); element.append(newDirective); $compile(newDirective)($scope);

Это позволит выполнить компиляцию и привязку вашего нового элемента и установить d2 в действие.

Однако вы можете найти его более простым и более угловатым, если вы можете каким-то образом переписать свою оригинальную директиву с точки зрения других встроенных директив, таких как ng-repeat или ng-include которые будут выполнять компиляцию и ссылку для вас.

Если ваша директива достаточно проста, она может просто что-то сделать в дополнение к массиву при прослушивании вашего события и указать шаблон, например

 
  • Угловой ng-стиль с условным выражением
  • Угловая динамическая проверка ng-шаблонов
  • Предварительный просмотр изображения перед загрузкой Angularjs
  • Как понять «терминал» директивы?
  • Отложить угловое выполнение часов после $ digest (повышение DOM-события)
  • Директива AngularJS, связывающая функцию с несколькими аргументами
  • Угловое название директивы: допускаются только строчные буквы?
  • Связь с компилятором и controllerом
  • Когда в пользу ng-if vs. ng-show / ng-hide?
  • Почему свойство «replace» устарело в директивах AngularJS?
  • Установите фокус на первый недопустимый ввод в форме AngularJs
  • Давайте будем гением компьютера.