Как обновить / сбросить значение атрибута formBuilder? - PullRequest
0 голосов
/ 03 апреля 2020

Попытка установить значение CURRENT_TEXT в пустую строку "" каждый раз, когда вызывается функция, но она всегда получает предыдущее выбранное значение. Есть идеи, что было реализовано неправильно?

main.ts

constructor(private dataService: ApiService, private eventService: EventService, private formBuilder: FormBuilder) {
    this.questionForm = this.formBuilder.group({
        alrgyDetls: formBuilder.group({
            ALLERGY_DETAILS: ['']
        }),
        curntText: this.formBuilder.group({
            CURRENT_TEXT: ['']
        })
    });
}
formatSubQuestions(e: any) {
    const answerOption = [{
        "answerOptionId": 0,
        "answerText": "",
        "answerOptionId2": 0

    }];
    this.questionForm.currentText.patchValue({
        CURRENT_TEXT: " "
    });
    if (e) {
        answerOption[0].answerText = this.questionForm.get('curntText.CURRENT_TEXT').value || "";
    }
}
}

1 Ответ

1 голос
/ 03 апреля 2020

Здравствуйте, вы действительно хотите, чтобы внутри формы было две группы форм, возможно, вместо этого вы хотели иметь два элемента управления формой.

Но для вашего примера вы можете сделать это следующим образом:

  formatSubQuestions(e: any) {
    const answerOption = [{
      "answerOptionId": 0,
      "answerText": "",
      "answerOptionId2": 0

    }];

    const formControl = this.questionForm.get('curntText').get('CURRENT_TEXT'); // get the wanted form control
    const oldValue = formControl.value; // save the old value before clearing it
    formControl.patchValue(''); // clear its value
    if (e) {
      answerOption[0].answerText = oldValue || '';
    }
  }
...