我有一个导航列表组件,它试图获取相同类型的子内容。
<nav-list>
<nav-list>
<div>
<nav-item>item1</nav-item>
</div>
<nav-item>Item 2</nav-item>
</nav-list>
</nav-list>
export class NavListComponent {
@ContentChildren(forwardRef(() => NavListComponent)) childNavList;
}
问题是host
本身也包含在childNavList
中。所以在上面的例子中,childNavList
长度是两个。
我认为ContentChildren
应该只让孩子们得到,我该怎样解决这个问题?
答案 0 :(得分:1)
很久以前似乎有一个bug report in Angular为此打开了。查看有关当前解决方法的讨论,在使用QueryList
时过滤掉列表中的当前组件。
该线程中使用的示例包括:
.filter(x => x !== this)
或
.filter(x => x.element.nativeElement !== this.element.nativeElement)