Не могу вызвать valueChanges и установить новое значение в форму - PullRequest
0 голосов
/ 08 января 2020

У меня есть 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 })

, но ничего не получалось.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...