Значение обновления управления версиями не обновляется в ngOnInit ()

Dino спросил: 28 апреля 2018 в 09:02 в: angular

Я создаю динамические формы из JSON в ngOnInit()

Что я хочу сделать, это установить некоторые элементы управления формы вручную, в конце ngOnInit().

ngOnInit(){
  ...Form creation...
  this.parsedJson.sections[0].form.controls['clientName'].setValue("John");
}

Он не обновляет элементы управления таким образом, как бы то ни было, если я запускаю одно и то же действие вручную (например, нажатие кнопки), он будет выполнять обновление.
this.parsedJson.sections[0].form.controls['clientName'].setValue("John");

Я также пробовал использовать patchValue вместо setValue, но результат тот же.

Форма Создание:

for(let section of this.parsedJson2.sections){
  section.form  = new FormGroup({});
  if(section.section_type == 'normal') {
    for (let question of section.question_list) {
      if (question.qtype == 'input-text') {
        const control: FormControl = new FormControl(question.answer, Validators.required);
        section.form.addControl(question.key, control);
      }
      if (question.qtype == 'input-email') {
        const control: FormControl = new FormControl(question.answer, Validators.email);
        section.form.addControl(question.key, control);
      }
      if (question.qtype == 'multi-choice') {
        for (let choice of question.qchoices) {
          const control: FormControl = new FormControl(choice.selected, Validators.required);
          section.form.addControl(choice.key, control);
        }
      }
      else {
        const control: FormControl = new FormControl(question.answer, Validators.required);
        section.form.addControl(question.key, control);
      }
    }
  }
}

1 ответ

Есть решение
Sebastien Servouze ответил: 28 апреля 2018 в 10:18

Вы должны обновить элементы управления в ngAfterViewInit.

Это происходит потому, что вызывается ngOnInit до полного инициализации представления.

Дополнительная информация здесь: Угловые крючки жизненного цикла