У меня есть formControl с matAutocomplete, объявленным таким образом:
<input type="text" matInput
[formControl]="puntiVendita" [matAutocomplete]="auto" >
<mat-autocomplete #auto="matAutocomplete">
<mat-option *ngFor="let pv of puntiVenditaFiltrati | async" [value]="pv">
{{pv}}
</mat-option>
</mat-autocomplete>
В моем ts у меня есть:
puntiVendita = new FormControl();
puntiVenditaFiltrati: Observable<string[]>;
В ngOnInit я подписываюсь на valueChanges следующим образом:
this.puntiVenditaFiltrati = this.puntiVendita.valueChanges
.pipe(
startWith(''),
map(value => this._filter(value))
);
, где _filter
- функция для фильтрации строк. Все отлично работает как надо. Затем в какой-то момент мне нужно вручную обновить значение puntiVendita
, вот что я делаю:
this.puntiVendita.patchValue(desc);
, но событие valueChanges
не запускается, и новое значение не появляется в форме .
Я пытался использовать setValue
вместо patchValue
и делать это после установки нового значения:
this.puntiVenditaFiltrati = this.puntiVendita.valueChanges
.pipe(
startWith(desc),
map(value => this._filter(value))
);
this.puntiVendita.updateValueAndValidity({onlySelf: false, emitEvent:true })
, но ничего не получалось.