Angular 指令 - ElementRef - 不能从 mat-form-field select mat-select
Angular Directive - ElementRef - Cannot select mat-select from mat-form-field
我正在尝试通过指令访问 mat-form-field
中的 mat-select
。
@Directive({ selector: "[appMatSelectLoader]" })
export class MatSelectLoaderDirective {
constructor(el: ElementRef) {
console.log((el.nativeElement as HTMLElement).querySelector("mat-select"));
}
}
我在控制台中得到 null
。但是,当我这样做时:
console.log((el.nativeElement as HTMLElement));
我确实在控制台中看到了 mat-select
:
我在这里错过了什么??
指令的应用方式如下:
<mat-form-field appearance="fill" appMatSelectLoader>
<mat-select required>
<mat-option *ngFor="let option of options" [value]="option.id">
{{ option.name }}
</mat-option>
</mat-select>
</mat-form-field>
您正试图在视图初始化之前查询 dom
export class MatSelectLoaderDirective implements AfterViewInit {
el: ElementRef;
constructor(el: ElementRef) {
this.el = el;
}
ngAfterViewInit () {
console.log((this.el.nativeElement as HTMLElement).querySelector("mat-select"));
}
}
我正在尝试通过指令访问 mat-form-field
中的 mat-select
。
@Directive({ selector: "[appMatSelectLoader]" })
export class MatSelectLoaderDirective {
constructor(el: ElementRef) {
console.log((el.nativeElement as HTMLElement).querySelector("mat-select"));
}
}
我在控制台中得到 null
。但是,当我这样做时:
console.log((el.nativeElement as HTMLElement));
我确实在控制台中看到了 mat-select
:
我在这里错过了什么??
指令的应用方式如下:
<mat-form-field appearance="fill" appMatSelectLoader>
<mat-select required>
<mat-option *ngFor="let option of options" [value]="option.id">
{{ option.name }}
</mat-option>
</mat-select>
</mat-form-field>
您正试图在视图初始化之前查询 dom
export class MatSelectLoaderDirective implements AfterViewInit {
el: ElementRef;
constructor(el: ElementRef) {
this.el = el;
}
ngAfterViewInit () {
console.log((this.el.nativeElement as HTMLElement).querySelector("mat-select"));
}
}