угловые реактивные формы - невозможно установить пользовательский валидационный массаж в текстовом поле onSubmit () - PullRequest
0 голосов
/ 18 мая 2019

Я пытаюсь установить сообщение об ошибке в текстовое поле 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

но не обновляется в пользовательском интерфейсе / браузере. Пожалуйста, помогите.

...