在Angular2中, 我想找到我的子组件,它是在运行时在模板中声明的。 我该怎么做? 例如:
@Component({
template: `
<cmp1 *ngIf=expression></cmp1>
<cmp2 *ngIf=!expression></cmp2>
`
})
export class Component3{
findChild(){
// How to find cmp2
}
}
答案 0 :(得分:1)
不确定“在运行时”是什么意思,但这通常是这样的:
@Component({
template: `
<cmp1 #cmp *ngIf=expression></cmp1>
<cmp2 #cmp *ngIf=!expression></cmp2>
`
})
export class Component3{
@ViewChildren('cmp') cmp:QueryList;
findChild(){
return this.cmp.toArray()[0];
}
}
Component1
需要导入。
另见angular 2 / typescript : get hold of an element in the template