Как очистить все загруженные значения в материале автозаполнения угловых? - PullRequest
0 голосов
/ 10 ноября 2019

Я пытаюсь очистить все загруженные значения в поле ввода материала при выборе выбора другого поля выбора матрицы. Я могу очистить только выбранное значение и не могу очистить все загруженные значения в поле ввода 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
}

1 Ответ

1 голос
/ 10 ноября 2019

Вы пытаетесь сбросить FormControl. Он не предоставляет данные для MatSelect. Получает данные из подписки - propertyfilteredOptions | async. Вам необходимо передать новые значения в propertyfilteredOptions Observable.

Вы также можете f.ex. просто измените его на новый Observable:

this.propertyfilteredOptions = new Observable([]);
...