0
我有一個組件comp
,其中有一個指令findTarget
。如何使用ViewChild/ContentChild從指令中找到指令?
<comp findTarget>
</comp>
comp
持有元素與target
指令:
@Component({
selector: 'comp',
template: `
<div target>
Target
</div>
`,
directives: [Target]
})
我想從裏面findTarget
指令找到target
指令:
@Directive({
selector: '[findTarget]'
})
export class FindTarget {
@ContentChild(Target) ctarget: Target;
@ViewChild(Target) vtarget: Target;
ngAfterContentInit() {
console.log('Content', this.ctarget)
}
ngAfterViewInit() {
console.log('View', this.vtarget)
}
}
,但我得到
Content undefined
View undefined
全碼: http://plnkr.co/edit/kc6q445iT1TcLqexqqAg?p=preview
更新: ContentChild似乎如果我搬到target
從comp
元素插入其模板的工作: http://plnkr.co/edit/3MQj2Dv8tK036EL8GU8f?p=preview 但這不是我想要的。
什麼ContentChild? –
'this.app.vComp.vtarget'我不能那樣做。我不知道在我的真實應用程序中無法使用App和Comp。 –