angular – @ViewChild始终返回undefined
发布时间:2020-12-17 07:23:26 所属栏目:安全 来源:网络整理
导读:我知道之前已经问过这个问题,但所选择的答案都不适用于我. 我正在尝试使用@ViewChild从dom中获取我的ng-select.它总是返回undefined 这是main.html里面的选择 ng-select id="user-select" #userSelect [allowClear]="true" [items]="singleSignOnUsers" [dis
我知道之前已经问过这个问题,但所选择的答案都不适用于我.
我正在尝试使用@ViewChild从dom中获取我的ng-select.它总是返回undefined 这是main.html里面的选择 <ng-select id="user-select" #userSelect [allowClear]="true" [items]="singleSignOnUsers" [disabled]="disabled" placeholder="No user selected"> </ng-select> 这是我的组件 import { Component,AfterViewInit,ViewChild } from '@angular/core'; @Component({ moduleId: module.id,selector: 'app-main',templateUrl: '../app/main.html',providers: [ApiHttpService,UserAdministrationService] }) export class AppComponent { @ViewChild('userSelect') userSelect; ngAfterViewInit() { alert(this.userSelect); } } 我在这里失踪了什么? 更新:哦,我的灵魂! <div [ngSwitch]='loading'> <div *ngSwitchCase="false"> ... <ng-select id="user-select" #userSelect [allowClear]="true" [items]="singleSignOnUsers" [disabled]="disabled" placeholder="No city selected"> </ng-select> ... </div> <div
@twaldron你在ngOnInit中使用了一些延迟数据加载吗?
因为在这种情况下,根据我的经验,将@ViewChild作为ElementRef读取不会产生任何结果 如果你的组件已经解析了数据(比如父项将子数据对象传递给子组件的情况),它应该可以工作(至少对我而言). 在异步数据加载的情况下,我能够使其工作的方式是使用更改通知 @ViewChildren('userSelect') userSelect: QueryList<ElementRef>; ngAfterViewInit(): void { this.userSelect.changes.subscribe(item => { if (this.userSelect.length) { alert(this.userSelect.first.nativeElment.outerHTML) } }) } (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |