嗨我想点击角度材料自动完成的重置值 但我不知道该怎么做。
我的代码:
<mat-form-field>
<input type="text" placeholder="Give Rights" formControlName="selectedOption" aria-label="User" matInput [matAutocomplete]="auto" (input)="onSearchChange($event.target.value)">
<mat-autocomplete #auto="matAutocomplete">
<mat-option *ngFor="let user of users" [value]="user.displayName" (onSelectionChange)="setSelectedUser($event, user)">
{{ user.displayName }}
</mat-option>
</mat-autocomplete>
<button (click)="resetValue($event)">RESET</button>
</mat-form-field>
TS:
this.nameForm = this._formBuilder.group({
selectedOption: new FormControl()
});
resetValue(){
console.log("Value -> ", this.nameForm.value.selectedOption);
this.nameForm.value.selectedOption = "test";
}
你能帮助我吗?
答案 0 :(得分:2)
您可以使用双向数据绑定将输入值绑定到类的属性,并使用resetValue
对该属性进行操作。
<input [(ngModel)]="selectedOption" ...
resetValue() {
this.selectedOption = '';
}
答案 1 :(得分:2)
首先,您需要获取要设置其值的控件的句柄,可以使用FormGroup的get方法进行操作
nameForm.get('selectedOption')
然后,您只需调用Reactive Forms提供的setValue方法即可设置 该控件。
<button (click)="nameForm.get('selectedOption').setValue('')">RESET</button>
答案 2 :(得分:0)
您的语法看起来不正确。试试this.nameForm.controls['selectedOption'].setValue('test');
答案 3 :(得分:0)
对我有用的是在输入控件中添加本地引用,并在单击选项时使用该引用将值设置为空:
input
#matInput
type="text"
placeholder="Search"
aria-label="Search"
matInput
[formControl]="search"
[matAutocomplete]="auto">
<mat-autocomplete
#auto="matAutocomplete"
(optionSelected)="onOptionSelected($event)"
panelWidth="auto">
<mat-option *ngFor="let item of items | async"
[value]="item.Key"
(click)="matInput.value=''">
{{ item.Name }}
</mat-option>
</mat-autocomplete>
答案 4 :(得分:0)
<pre>
//html
<input #inputSearch ........>
<button (click)="btnClick()" ..........>click</button
//ts
import {ElementRef, ViewChild} from '@angular/core';
@ViewChild('inputSearch') inputSearch: any;
constructor(private elementRef: ElementRef,.............)
{
this.inputSearch = elementRef
}
btnClick(){
this.inputSearch.nativeElement.value=null;
this.inputSearch.nativeElement.dispatchEvent(new Event('input', {
}))
}
</pre>