1

我正在开发模板驱动方法的应用程序。下面是我的项目结构。

  • 父母

父组件.ts

父组件.html

  • 孩子

child.component.ts

child.component.html

child.ts

child.ts:

export class child {
    public childValue: address[];
}

export class address {
    public state: string;
    public city: string;
}

child.component.ts

<div *ngFor="let item of ValueItem; let i=index">
    <label> {{item.name}}</label>
    <input name="city" [(ngModel)]="address[i].state"/>
</div>

当我尝试将地址对象的状态字符串映射到ngModel时,我无法执行此操作,并且它显示错误“无法读取未定义的属性‘状态’”。是否可以将对象数组中的对象映射到ngModel?如果是这样,如何做到这一点?

4

1 回答 1

1

简而言之,是的!可以将对象数组中的对象映射到 ngModel。
您提供了此模板代码。

<div *ngFor="let item of ValueItem; let i=index">
   <label> {{item.name}}</label>
   <input name="city" [(ngModel)]="address[i].state"/>
</div>

我假设它ValueItem是类型address[],并且您已确保它包含一些数据。如果是这样,您应该能够通过以下方式访问数据:

<div *ngFor="let item of ValueItem">
   <label> {{item.city}}</label>
   <input name="city" [(ngModel)]="item.state"/>
</div>

如果我们看看发生了什么。*ngFor="Let item of ValueItem;允许我们遍历数组并允许我们访问在这种item情况下为 type的对象address。我们从前面知道address有 2 个属性statecity. 所以要使用它们,我们可以简单地使用 eg item.state

希望这有帮助。

于 2017-10-10T15:41:31.287 回答