Я пытаюсь перевести приложение на ChangeDetectionStrategy.OnPush
.Тем не менее, я сталкиваюсь с блокировщиком, пытающимся работать с некоторыми реактивными формами.
У меня есть многоразовый элемент управления, который показывает сообщения проверки на основе некоторых флагов состояния (например, *ngIf="control.touched && control.invalid"
),Проблема, с которой я сталкиваюсь, заключается в том, что нет способа обнаружить, когда изменяется флаг touched
, и, следовательно, нет способа инициировать обнаружение изменений, используя ChangeDetectorRef
.
Это может бытьсделано со ссылкой на сам элемент ввода путем прослушивания события click
, но это не учитывает, когда используется markAsTouched()
, и передача ссылки на элемент вокруг не всегда возможна, и это всегда не элегантно.
Есть ли способ использовать OnPush
и по-прежнему реагировать на состояние управления формой (например, touched
), или это просто больно?