Отображение сообщений проверки с помощью Reactive Forms и ChangeDetectionStrategy.OnPush - PullRequest
0 голосов
/ 04 мая 2019

Я пытаюсь перевести приложение на ChangeDetectionStrategy.OnPush.Тем не менее, я сталкиваюсь с блокировщиком, пытающимся работать с некоторыми реактивными формами.

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

Это может бытьсделано со ссылкой на сам элемент ввода путем прослушивания события click, но это не учитывает, когда используется markAsTouched(), и передача ссылки на элемент вокруг не всегда возможна, и это всегда не элегантно.

Есть ли способ использовать OnPush и по-прежнему реагировать на состояние управления формой (например, touched), или это просто больно?

1 Ответ

0 голосов
/ 04 мая 2019

Я не знаю, ищите ли вы новый способ создания ReactiveForm, используя новую FormGroup напрямую.Извините, если я не поняла ваш вопрос.например,

//before
this.myForm=this.formBuilder({
   control1:''
   })
//after
this.myForm=new FormGroup({
   control1:new FormControl(''),
},{ updateOn: 'blur' })
...