Форма управления для выбора не обновляет значение при изменении списка параметров - PullRequest
0 голосов
/ 15 апреля 2019

Я использую реактивные формы Angular, и один из элементов управления форм является выборочным вводом.Параметры изменяются динамически, и когда пользователь выбирает значение, а затем параметры изменяются, старое значение остается значением элемента управления формой, даже если его больше нет в списке параметров (и, следовательно, оно не является приемлемым значением).

HTML:

<mat-select formControlName="example">
    <mat-option *ngFor="let example of examples_filtered" [value]="example">
        {{ example.frontend_name }}
    </mat-option>
</mat-select>

TypeScript:

this.myForm.controls['someControl'].valueChanges.subscribe(
    (value) => {
        this.examples_filtered = [];
        this.examples.forEach((example: Example, index: Number, array: Example[]) => {
          if (example.value_id === value.id) {
            this.examples_filtered.push(example);
          }
        });
    }
);

Поскольку этот элемент управления формы использует Validators.required, ожидаемое поведение заключается в том, что элемент управления формы очищается (т. Е. Значениеустанавливается равным нулю) и его статус изменяется на «НЕВЕРНЫЙ».

Фактический результат заключается в том, что старое значение из ранее отфильтрованных примеров по-прежнему выбрано в элементе управления формы, и Validators.required помечает элемент управления формы как действительный.

Должен ли я сделать это вручную (пользовательский код) или есть механизм, который поддерживает Angular, который решает эту проблему?

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