Угловое включение

Посмотреть этот план

https://plnkr.co/edit/theggRtJlbFj1H4zVUKU?p=preview

используя сервис $compile, мне нужно, чтобы dirC был вложен в dirB. Результат должен быть

DirB
DirC 

Я думал, что это ошибка, поскольку директива dirC и контроллер никогда не запускались, поэтому группа Angular сказала использовать включение.

Итак, я использую трансклюзию, а dirC и dirB никогда не добавляются в DOM.

Что мне не хватает?


person user714157    schedule 07.03.2016    source источник


Ответы (1)


Директива C включена в директиву B. Но единственный видимый текст в обоих шаблонах находится внутри блока div с директивой ng-transclude. Таким образом, текстовое содержимое заменяется включенным HTML: директива C в случае if <dir-b> и ничего в случае <dir-c>.

Вот ваш пример с фиксированными шаблонами, чтобы показать вам, что он работает нормально: https://plnkr.co/edit/FRtMA3h0Caredc4staW8?p=preview

Как и ng-view, ng-transclude является заполнителем, что означает: заменить содержимое этого элемента тем, что находится внутри тела директивы.

person JB Nizet    schedule 07.03.2016
comment
Большой! спасибо за комментарий о том, что ng-transclude похож на ng-view... в этом немного больше смысла. - person user714157; 07.03.2016