因此,为了更好地说明,将简化并尽可能简洁。
<my-accordion>
<my-title>My accordion</my-title>
<my-accordion-item>
<my-title>My accordion item 1</my-title>
<my-content>Content 1</my-content>
<my-accordion-item>
<my-accordion-item>
<my-title>My accordion item 2</my-title>
<my-content>Content 2</my-content>
<my-accordion-item>
</my-accordion>
如你所见,我使用(我的)标准my-title作为我的手风琴和my-accordion-item
所以在我的手风琴组件中我有逻辑
private title:string = '';
@ContentChild( myTitle ) myTitle: myTitle;
ngAfterViewInit(){
if(this.myTitle && this.myTitle.content.length !== 0){
this.title = this.myTitle.content;
}
}
所以,如果我的观点与我之前的例子完全相同,那就行了......而标题回来的是“我的手风琴”但是,如果我没有my-title元素在my-accordion的根源上......就像这样:
<my-accordion>
<my-accordion-item>
<my-title>My accordion item 1</my-title>
<my-content>Content 1</my-content>
<my-accordion-item>
<my-accordion-item>
<my-title>My accordion item 2</my-title>
<my-content>Content 2</my-content>
<my-accordion-item>
</my-accordion>
标题将被设置为“我的手风琴项目1 ”,因为它获得了整个DOM子树中的第一个my-title
有没有办法只检查直系孩子?
答案 0 :(得分:4)
Sub PrintScreen()
keybd_event VK_SNAPSHOT, 1, 0, 0
End Sub
并不是@ContentChild()
https://angular.io/docs/ts/latest/api/core/index/ContentChildren-decorator.html
@ContentChildren()
另见angular 2 / typescript : get hold of an element in the template