如何清除 material 自动完成 angular 中所有加载的值?

How to clear all loaded values in material autocomplete angular?

我正在尝试清除另一个 mat-select 字段的 selectionchange 上的 material 输入字段中的所有加载值。我只能清除 selected 值,而不能清除输入字段 property 中的所有加载值。这是代码。

HTML:

<mat-form-field>
    <mat-select formControlName="searchType" (selectionChange)="searchTypeChange()" placeholder="Search By">
        <mat-option *ngFor="let st of searchTypes" [value]="st.value">
            {{st.viewValue}}
        </mat-option>
    </mat-select>
</mat-form-field>

<mat-form-field *ngIf="searchForm.get('searchType').value==6" class="example-full-width">
    <input matInput placeholder="PropertyID" [formControl] ="property"    [matAutocomplete]="auto">
    <mat-autocomplete #auto="matAutocomplete" autoActiveFirstOption>
        <mat-option *ngFor="let option of propertyfilteredOptions | async" [value]="option">
            {{option}}
        </mat-option>
    </mat-autocomplete>
</mat-form-field>

打字稿:

ngOnInit(): void {
    this.searchForm=this.fb.group({
       prop:this.property,
    });
}
searchTypeChange(){
    this.searchForm.get('prop').setValue('');
    this.property.reset(); //this is not working
}

您正在尝试重置 FormControl。它不向 MatSelect 提供数据。它从订阅 -propertyfilteredOptions | async 获取数据。您需要将新值传递给 propertyfilteredOptions Observable。

你也可以f.ex。只需将其更改为新的 Observable:

this.propertyfilteredOptions = new Observable([]);