Метод установки значения и обновления срока действия формы управления
Мне интересно, если есть какой-либо метод, чтобы установить значение и обновить достоверность элемента управления формы. Учитывая следующее:
this.updateForm = this._formBuilder.group({
user: ['',Validators.required]
});
У меня есть некоторая директива, которая имеет триггер изменения, который вызывает следующее:
changeUserSelection(value){
this.updateForm.controls['user'].value = value // doesnt trigger validation?
}
И мне интересно, как я могу установить значение и запустить проверку этого поля. Делая это по-моему, не вызывает проверки.
Спасибо
3 ответа
Вы должны использовать updateValue
метод вместо:
changeUserSelection(value){
this.updateForm.controls['user'].updateValue(value);
}
Обновление до Angular2 final
Согласно окончательному выпуску angular2 updateValue
был изменен на setValue
поэтому новый синтаксис должен быть таким
changeUserSelection(value){
this.updateForm.controls['user'].setValue(value);
}
Для меня setValue
, patchValue
не справлялись сами. Я сделал следующее для запуска проверки:
form.controls[field].setValue(value);
form.controls[field].markAsTouched();
form.controls[field].markAsDirty();
form.controls[field].updateValueAndValidity();
Таким образом, мои сообщения проверки были запущены правильно. Я пробовал безupdateValueAndValidity
но это не сработало.
Вы также можете попробовать patchValue
this.updateForm.patchValue({ user: value });
Ты можешь попробовать this.form.updateValueAndValidity();
для обновления значения и проверки для нескольких элементов управления.