ngFor 里面的 ngModelGroup?

tam*_*am5 1 javascript angular-ngmodel angular2-ngmodel angular

如何检索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>
Run Code Online (Sandbox Code Playgroud)

但相反,我想要这样的东西:

<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
Run Code Online (Sandbox Code Playgroud)

问题是我得到的addressCtrl是未定义的。

这是我创建的一个 plunker 来测试这个:https ://plnkr.co/edit/RXi2T52kynsWLr4fDMVa?p=preview

Jav*_* R. 5

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": { ... }}, ... }
-->
Run Code Online (Sandbox Code Playgroud)

是的,你可以,像这样使用它。