@ViewChild('telephone') telephone!:ElementRef<any>
@ViewChild('code') code!:ElementRef<any>
...
if (response.body.result) {
this.frm.controls['codeField'].enable();
this.renderer.selectRootElement('#code').focus()
}
HTML:
<mat-form-field class="codeField" >
<mat-label>Code</mat-label>
<span matPrefix> </span>
<input type="text" matInput placeholder="00-00" mask="00-00" formControlName="codeField" id='code' >
</mat-form-field>
我尝试过使用:
renderer.selectRootElement('#focus').focus()/click()
ElementRef.nativeElement.focus()/click()
MatInput.focus()/click()
@ViewChild('address') adressInput!: MatAutocomplete;
@ViewChild('room') roomInput!: MatAutocomplete;
TS:
address_is_selected(event: any) {
this.address.blur()
HTML:
<mat-form-field layout-align='center center'>
<input matInput placeholder="address" aria-label="address" [matAutocomplete]="address"
formControlName="adress" #addressInput/>
<mat-autocomplete #address="matAutocomplete" id="address" (optionSelected)="address_is_selected($event.option.value)">
<mat-option *ngFor="let addressof filteredaddress | async" [value]="address">
<span> {{ address}}</span>
</mat-option>
</mat-autocomplete>
</mat-form-field>
我尝试了所有这些方法,但没有一个可以帮助我。
模板引用变量,用于获取ViewChild,但它不是html属性。在 .ts 中,您使用变量并获取 ElementRef。
elementRef.nativeElement 是 HTMLElement
所以你只需使用“javaScript”
this.code.nativeElement.focus()