有条件地声明视图 child
Declare View child conditionally
我在两个有条件地呈现的 div 中有输入框。
html
<div ngIf="show==true">
<input #ref />
</div>
<div ngIf="show==true">
<input #ref />
</div>
.ts
@ViewChild('ref ') ref : ElementRef;
ngOnInit(){
if(someCondition){
show = true;
}
Observable.fromEvent(this.ref .nativeElement, 'keyup');
}
它将未定义的引用显示为在 ngOnInit 之前声明的引用变量
我相信我们不能稍后初始化viewchild,
有什么替代解决方案。
谢谢
您需要访问该 viewchild 组件,如下所示。
意味着你必须使用 "ngAfterViewInit" (实现 AfterViewInit ),因为子组件在 "ngOnit" 运行时不可用
@ViewChild('ref ') ref : ElementRef;
ngAfterViewInit() {
console.log('Values on ngAfterViewInit():');
console.log("ref:", this.ref);
}
我在两个有条件地呈现的 div 中有输入框。
html
<div ngIf="show==true">
<input #ref />
</div>
<div ngIf="show==true">
<input #ref />
</div>
.ts
@ViewChild('ref ') ref : ElementRef;
ngOnInit(){
if(someCondition){
show = true;
}
Observable.fromEvent(this.ref .nativeElement, 'keyup');
}
它将未定义的引用显示为在 ngOnInit 之前声明的引用变量
我相信我们不能稍后初始化viewchild,
有什么替代解决方案。
谢谢
您需要访问该 viewchild 组件,如下所示。 意味着你必须使用 "ngAfterViewInit" (实现 AfterViewInit ),因为子组件在 "ngOnit" 运行时不可用
@ViewChild('ref ') ref : ElementRef;
ngAfterViewInit() {
console.log('Values on ngAfterViewInit():');
console.log("ref:", this.ref);
}