ngModelGroup внутри ngFor?

Как я могу получить статус проверки NgModelGroup который вложен в NgFor?

Если у меня нет NgForЯ могу назначить группу переменной шаблона следующим образом:

<p *ngIf="addressCtrl.invalid">Address is invalid.</p>

<div ngModelGroup="address" #addressCtrl="ngModelGroup">
    <input name="city"  [ngModel]="address.city"  required>
    <input name="state" [ngModel]="address.state" required>
    <input name="zip"   [ngModel]="address.zip"   required>
</div>

Но вместо этого я хочу иметь что-то вроде этого:

<p *ngIf="addressCtrl.invalid">Address # {{index}} is invalid.</p>

<div *ngFor="let address of addresses">
    <div ngModelGroup="address" #addressCtrl="ngModelGroup">
        <input name="city"  [ngModel]="address.city"  required>
        <input name="state" [ngModel]="address.state" required>
        <input name="zip"   [ngModel]="address.zip"   required>
    </div>
</div

Проблема в том, что я получаю addressCtrl не определено

Вот плункер, который я создал для проверки этого: https://plnkr.co/edit/RXi2T52kynsWLr4fDMVa?p=preview

2 ответа

addressHistory valid? {{ myHistoryGroup.valid }}
<ul ngModelGroup="addressHistory" #myHistoryGroup="ngModelGroup">
    <li *ngFor="let i = index; let address of addressHistory">
        <div [ngModelGroup]="i" #myLi="ngModelGroup">
        address valid? {{ myLi.valid }}
            <input type="text" [(ngModel)]="address.state" name="state" />
            <input type="text" [(ngModel)]="address.country" name="country" />
        </div>
    </li>
</ul>

<!--
#myForm.value will be like this:

{ "addressHistory": { "0": { ... }, "1": { ... }}, ... }
-->

Да, вы можете использовать это так.

Кажется, работает нормально, если вы двигаетесь

<p *ngIf="addressCtrl.invalid">Address # {{index}} is invalid.</p>

внутри вашей итерации.

Ваш плункер имеет немного другой код, так что это будет:

<p *ngIf="group.invalid">Address # {{index}} is invalid.</p>

Ваш раздвоенный

Plunker

Другие вопросы по тегам