2017-10-19 170 views
0

我有一个场景,人可以有多个地址。当选择地址类型完整地址显示在文本区域时,在下拉菜单中显示地址类型。嵌套模型 - 角2

<div *ngFor="let person of persons"> 

    <select [ngModel]="selectedAddress" (ngModelChange)="selectedAddress = $event"> 
    <option *ngFor="let address of person.addresses" [ngValue]="address"> 
     {{address.type}} 
    </option> 
    </select> 

    <textarea [(ngModel)]="selectedAddress.address"></textarea> 

</div> 

每个人都显示在每个div区块中。当在一个块上选择下拉值时,也会填充其他块中的文本区域。

当在一个块上选择下拉菜单时,应该只在块内填充文本区域。如何处理这种情况

回答

0

你必须处理它和所选地址的数组。这个地址是这样的,其中selectedAddress是一个数组:

<div *ngFor="let person of persons; let i = index"> 
    <select [ngModel]="selectedAddress[i]" (ngModelChange)="selectedAddress[i] = $event"> 
    <option *ngFor="let address of person.addresses" [ngValue]="address"> 
     {{address.type}} 
    </option> 
    </select> 
    <textarea [(ngModel)]="selectedAddress[i].address"></textarea> 
</div> 
+0

Pujol Ferriol - 我得到这个,当我尝试实施你的建议。错误TypeError:无法读取null的属性'0'。有没有我缺少的任何类型的空检查。 – Ahelp

+0

您必须在component.ts中启动selectAddress数组。例如:private selectedAddress = [] –

+0

是否可以处理两维数组场景。例如,万一如​​果我的对象是模型selectedAddress = [] [] – Ahelp