Ionic 4 - Angular 6 formArrayName не работает должным образом - PullRequest
0 голосов
/ 01 октября 2018

Попытка использовать formArrayName со списком ионных флажков Это мой контроль:

this.planGroup = this.formBuilder.group({
        ...
        PlanEmails: this.formBuilder.array([
            this.formBuilder.group({
                PlanId: '',
                EmailId: ''
            })
        ]),
    });

А это мой HTML

         <ion-row>
            <ion-col formArrayName="PlanEmails" [sizeXs]="12" [sizeSm]="6" *ngFor="let email of emails">
              <ion-item>
                <ion-label>{{email.Title}}</ion-label>
                <ion-checkbox formControlName="EmailId" color="secondary" [value]="email.Id" slot="start"></ion-checkbox>
              </ion-item>
            </ion-col>
          </ion-row>

Это ошибка, которую яполучение

 ERROR Error: Cannot find control with path: 'PlanEmails -> EmailId'
    at _throwError (forms.js:1732)
    at setUpControl (forms.js:1640)
    at FormGroupDirective.push../node_modules/@angular/forms/fesm5/forms.js.FormGroupDirective.addControl (forms.js:4454)
    at FormControlName.push../node_modules/@angular/forms/fesm5/forms.js.FormControlName._setUpControl (forms.js:4959)
    at FormControlName.push../node_modules/@angular/forms/fesm5/forms.js.FormControlName.ngOnChanges (forms.js:4909)
    at checkAndUpdateDirectiveInline (core.js:9246)
    at checkAndUpdateNodeInline (core.js:10514)
    at checkAndUpdateNode (core.js:10476)
    at debugCheckAndUpdateNode (core.js:11109)
    at debugCheckDirectivesFn (core.js:11069)

Попытка перемещения formArrayName к ion-row и к ion-item, и это не сработало.
Я не знаю, что делаю неправильно.Пробовал читать документацию Angular, но я не могу понять это.

Ответы [ 2 ]

0 голосов
/ 04 октября 2018

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

У вас есть FormArray из FormGroup с FormControl с, но вы определили FormArray из FormControl с в шаблоне.

Чтобы исправить это, вы должны использовать директиву formGroupName.

<ion-col ... *ngFor="let email of emails; let i = index">
                                             ||
                                             \/
                                         add this
    <ion-item [formGroupName]="i">
                         ||
                         \/
                       and this
0 голосов
/ 04 октября 2018

Есть несколько примеров для FromGroup.Пожалуйста, следуйте по этому адресу https://angular.io/guide/reactive-forms

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...