Дерево компонентов от отца к сыну с гостевым компонентом
В Angular 2 у меня есть иерархия компонентов. Однако внутри дерева мне нужно показать еще один элемент, который отделен от иерархии объектов. Это будет компонент блесны. Как-то не хочет показываться.
<parent>
<child>
<grandchild>
<spinner></spinner>
</grandchild>
<child>
</parent>
parent
включает в себяchild
в шаблоне,child
включает в себяgrandchild
в шаблоне.grandchild
не включает в себяspinner
в шаблоне, но хочет показать его (он используетng-content
для этого). Или, возможно, в какой-то моментchild
хотел бы показать счетчик вместо этого.
Как мне заставить его работать? Всегда ли родитель должен указывать возможных детей? Пожалуйста, дайте мне знать, что я делаю не так.
1 ответ
Решение
Если вы добавите <ng-content></ng-content>
шаблону компонента, тогда дочерние элементы отображаются вместо <ng-content></ng-content>
,
Таким образом, вы можете передать дочерние компоненты родителям.
@Component({
selector: 'child'
template: `<grand-child><ng-content></ng-content></grand-child>`
})
@Component({
selector: 'grand-child'
template: `some content before <ng-content></ng-content>some content after`
})
Тогда вы можете использовать его как
<child><my-spinner></my-spinnger></child>