При создании динамического c списка компонентов mat-checkbox (Angular Материал 8.2.3) я заметил странное поведение в отношении обнаружения изменений. Флажок mat, кажется, не изменяется в соответствии с его управлением формы правильно.
Вариант использования: пользователь должен иметь возможность выбрать несколько опций на основе некоторых внешних данных. Некоторые параметры требуются, и в этом случае в форме должны отображаться как отмеченные, так и отключенные.
Воспроизведение: Stackblitz
Выбор минимального значения из выбора должен отфильтровать флажки на основе их стоимости. Значение 60 всегда требуется. Флажки показывают ожидаемое поведение при первом выборе числа, но начинают показывать странное поведение после изменения выбора несколько раз. Необходимый и отключенный флажок больше не отмечен, а иногда и другой флажок установлен, хотя это не должно быть Кажется, что правильное состояние элемента управления формы (напечатано под флажками).
Обходной путь, который я нашел, состоял в том, чтобы вручную вызывать обнаружение изменений после удаления всех опций. Использование существующих элементов управления формой с помощью setValue вместо создания новых элементов управления формой не имеет значения.
В чем причина этого поведения и существует ли лучший способ его устранения, чем принудительное дополнительное изменение (вручную) цикл обнаружения?