我有一个可以嵌套的组件,它会尝试查询其子组件。
@Component({
selector: "container",
template: `[{{this.children.length}}]<ng-content></ng-content>`
})
export class ContainerComponent {
@ContentChildren(ContainerComponent) public children:QueryList<ContainerComponent>;
}
但是,QueryList不仅包括所有子组件,还包括查询组件本身(== this)。
<container>
<container></container>
<container></container>
</container>
输出为[3] [1] [1]而不是[2] [0] [0]。
https://plnkr.co/edit/mGuJEE60QUCXYb3jIYUx?p=preview
这可以预防吗?对于DI,有@SkipSelf,但它似乎不适用于@ContentChildren。
答案 0 :(得分:6)
有一个公开的错误可以让这个改变并得到确认。 这将在未来发生变化。
https://github.com/angular/angular/issues/10098#issuecomment-235157642