Angular 满足未填充的儿童5

Angular 满足未填充的儿童5,angular,Angular,我有一个窗格组件,它可以包含多个窗格s。我必须能够访问窗格组件内部的单个窗格s。为此,我正在使用ContentChildren,但由于某些原因,即使正在呈现窗格,它也无法识别/注册它们 你能告诉我我做错了什么吗 窗格玻璃 加价 <panes> <div pane> 1 </div> <div pane> 2 </div> <div pane *ngIf="show"> 3 &l

我有一个
窗格
组件,它可以包含多个
窗格
s。我必须能够访问
窗格
组件内部的单个
窗格
s。为此,我正在使用
ContentChildren
,但由于某些原因,即使正在呈现
窗格,它也无法识别/注册它们

你能告诉我我做错了什么吗

窗格玻璃

加价

<panes>
  <div pane>
    1
  </div>
  <div pane>
    2
  </div>
  <div pane *ngIf="show">
    3
  </div>
</panes>
<button type="button" (click)="toggle()">Toggle</button>

1.
2.
3.
切换

Plnkr:

我在这里着陆,因为我面临着类似的问题,但我发现您的问题仅仅是因为窗格指令中的选择器错误

应该是:

@Directive({selector: '[pane]'})
export class Pane
而不是:

@Directive({selector: 'pane'})
export class Pane
括号[]不见了

下面是stackblitz的工作示例


根据上的评论,ContentChildren仅适用于组件。我不知道这是不是真的,但如果你把窗格翻转成一个组件,你的例子肯定会起作用。我不认为这是真的。我试过了,但还是不行,没错。谢谢大家!如果你们中有人能把这个作为一个答案,我愿意接受它并投票支持你们answer@RoddyoftheFrozenPeasContentChildren当然适用于指令,正如docs中的示例使用指令一样
@Directive({selector: '[pane]'})
export class Pane
@Directive({selector: 'pane'})
export class Pane