Как установить значения для FormArray в Angular 4 после его инициализации? - PullRequest
0 голосов
/ 29 апреля 2018

У меня есть formArray, и я хотел бы установить значения в массив после того, как я получу данные в более поздний момент времени, но так как у меня инициализирован formArray, возможно ли установить начальные значения для formArray и как мне установить значение, если я должен

constructor(private fb: FormBuilder) {
      this.businessForm = fb.group({
                    businessInfo: this.buildBusinessArray()
                });
        buildBusinessArray() {
                this.businessInfo = this.fb.array([this.buildBusinessGroup()]);
                return this.businessInfo;
            }

            buildBusinessGroup() {
                return this.fb.group({
                    taxNumber: '',
                    legalName: '',
                    `enter code here`dbaName: '',
                    location: '',
                });
            }
    }

Вот как я пытаюсь установить значения в функции. Но он не устанавливает значение, он просто выдает ошибку

this.selected.forEach((selected) => {
    this.businessForm.setValue ({
     'taxNumber': this.merchantInfo[selected.merchantNumber].businessInfo.taxNumber,
    ' legalName': 
     this.merchantInfo[selected.merchantNumber].businessInfo.legalName,
     'dbaName': this.merchantInfo[selected.merchantNumber].businessInfo.dbaName,
     'location': this.merchantInfo[selected.merchantNumber].businessInfo.location
    });
});

enter image description here

Я не уверен, что мне не хватает. Может ли кто-нибудь помочь мне с этим?

1 Ответ

0 голосов
/ 29 апреля 2018

При попытке использовать setvalue метод. вам нужно установить всех участников. Если вы используете свой код, замените setValue на patchValue метод.

ваш текущий код. Я обновил метод.

this.selected.forEach((selected) => {
    this.businessForm.patchValue ({
     'taxNumber': this.merchantInfo[selected.merchantNumber].businessInfo.taxNumber,
    ' legalName': 
     this.merchantInfo[selected.merchantNumber].businessInfo.legalName,
     'dbaName': this.merchantInfo[selected.merchantNumber].businessInfo.dbaName,
     'location': this.merchantInfo[selected.merchantNumber].businessInfo.location
    });
});

Вы также можете использовать setvalue, но вам нужно инициализировать businessInfo свойство.

    this.selected.forEach((selected) => {
        this.businessForm.patchValue ({
businessInfo: '',//assign your value here
         'taxNumber': this.merchantInfo[selected.merchantNumber].businessInfo.taxNumber,
        ' legalName': 
         this.merchantInfo[selected.merchantNumber].businessInfo.legalName,
         'dbaName': this.merchantInfo[selected.merchantNumber].businessInfo.dbaName,
         'location': this.merchantInfo[selected.merchantNumber].businessInfo.location
        });
    });
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...