Angular / Javascript: для l oop для инициализации формы. Как это правильно написать? - PullRequest
0 голосов
/ 17 июня 2020

Я делаю форму и хочу сделать al oop в соответствии с моими match.length, например:

pronoPlayer0: ['', Validators.required]

pronoPlayer1 : ['', Validators.required]

pronoPlayer2: ['', Validators.required]

Я не знаю, как правильно исправить «i», в настоящее время с кодом ниже , У меня следующая ошибка: ошибка TS1005: ',' ожидается.

  initForm(){
    this.pronoForm = this.formBuilder.group({
      for(let i=0; i<this.matches.length; i++){
      ["pronoPlayer"+i]: ['',Validators.required]
    }});
  }

1 Ответ

1 голос
/ 17 июня 2020

pronoPlayer[i] выполняется для доступа к массиву или свойству объекта. Итак, pronoPlayer[i]: 'something' не является допустимым синтаксисом, и, следовательно, вы получаете ошибку.

Поскольку вы намерены создать здесь ключи Dynami c, сделайте это вместо этого:

["pronoPlayer"+i] = ['',Validators.required],

ОБНОВЛЕНИЕ

Вам нужно создать правильную структуру for..loop и передать ее внутрь this.formBuilder.group(...); Примерно так:

   var obj = {}
   for(let i=0; i<this.matches.length; i++){
        obj["pronoPlayer"+i] = ['',Validators.required];
    }
this.pronoForm = this.formBuilder.group(obj);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...