小编Vla*_*iev的帖子

使用ng-content使用父渲染项时,不会填充@ContentChildren

我有三个组件:Panel,PanelGroup(ul)和PanelItem(li):

面板:

@Component({
selector: "panel",
directives: [PanelGroup,PanelItem],
template: `
  <panel-group>
    <ng-content select="panel-item"></ng-content>
  </panel-group>
`})

export default class Panel {}
Run Code Online (Sandbox Code Playgroud)

panelGroup中:

@Component({
selector: "panel-group",
directives: [forwardRef(() => PanelItem)],
template: `
  <ul>
    <ng-content></ng-content>
  </ul>`
})

export default class PanelGroup {
  @ContentChildren(forwardRef(() => PanelItem)) items;

  //I need to access children here and modify them eventually:
  ngAfterContentInit() {
    console.log(this.items.toArray()); //the array is always empty
  }
}
Run Code Online (Sandbox Code Playgroud)

PanelItem:

@Component({
selector: "panel-item",
directives: [forwardRef(() => PanelGroup)],
template: `
  <li>
    <span (click)="onClick()">
        {{title}}
    </span>
    <panel-group>
        <ng-content select="panel-item"></ng-content> …
Run Code Online (Sandbox Code Playgroud)

angular

6
推荐指数
1
解决办法
3470
查看次数

标签 统计

angular ×1