Я пытаюсь установить сообщение об ошибке в текстовое поле branchId, которое не работает при первом нажатии.
В следующий раз, когда я нажимаю «Отправить», отображается сообщение «Массаж
».
Моя форма
ngOnInit() {
this.form = this.fb.group({
BRANCH_ID: ['',
[ Validators.required,
.....
],
]
this.form.controls.branchId.valueChanges
.subscribe(uploadBranchId => {
if (uploadBranchId === '1234') {
this.form.controls.branchId.setErrors({'salesBranch': true})
}
});
}
моя библиотека хранилища ошибок
branchId: {
....
salesBranch: 'Please provide valid branchId',
},
Форма отправки события
onSubmit(){
combineWithStream.call(
this,
masterErrorProgramme({
fieldMap: this.fieldMap,
controls: this.form.controls,
errorStore: this.errorStore,
scrollToError: true,
formId: ''
}).fieldMap
);
if (this.form.valid) {
this.branchId = this.form.controls.branchId.value;
// check branchId in Database
this.serviceName.pipe(first()).subscribe((res) => {
// If branchId is not found in Database
if (res == "ID_NOT_FOUND") {
this.form.controls.branchId.setErrors({'salesBranch': true})
} else{
this._router.navigate(somePath)
}
})
}
}
первая подписка даже работает отлично, если то же самое происходит в onSubmit (). this.form.controls.branchId.setErrors({'salesBranch': true})
в formmControls это настройка
errors:
salesBranch: true
__proto__: Object
но не обновляется в пользовательском интерфейсе / браузере.
Пожалуйста, помогите.