我正在尝试对一个类进行继承,但如果我使用 ViewChild,我总是会得到未定义的。我将展示我的问题的简化。
我有一个这样的父类:
@Component({
selector: 'parent',
template: `<h1>Hello {{name}}!</h1> <p #pRef>`,
styles: [`h1 { font-family: Lato; }`]
})
export class ParentComponent {
name: string;
@ViewChild('pRef') public pRef: ElementRef;
ngOnInit{
console.log(this.pRef.nativeElement);
}
}
然后,我有一个想要覆盖名称的孩子,例如:
@Component({
selector: 'child',
templateUrl: '<div></div>',
styleUrls: [ './app.component.css' ]
})
export class ChildCOmponent extends ParentComponent {
name = 'Juan';
}
正如我之前所说,这是对我的问题的简化,但我得到了同样的错误:
ERROR 错误:无法读取未定义的属性“nativeElement”
我需要在父级和子级中访问 ViewChild 我不需要它,但我收到错误,因为在子级组件中 pRef 不存在。
如何同时使用 ViewChild 和继承?