2017-08-01 52 views
1

https://plnkr.co/edit/7hOOoJNYvx4K91yKWqYj?p=preview如何設置動態數據?

我有這個運行不正常。當我這樣做,那麼工作:

data = { Alice: {}, Bob: {}} 

<div *ngFor="let person of people"> 
    <h1>{{person}}</h1> 
    <div> 
    Material 
    <select [(ngModel)]="data[person].material" (ngModelChange)="materialChange($event, person)"> 
     <option *ngFor="let material of materials" [value]="material">{{material}}</option> 
    </select> 
    </div> 
    <div> 
    Colours 
    <select [(ngModel)]="data[person].chosenColour"> 
     <option *ngFor="let colour of data[person].colours" [value]="colour">{{colour}}</option> 
    </select> 
    </di 

我怎麼能改寫這一點,因爲我需要動態數據,因爲我不知道有多少數據,我將有..我不需要固定值。任何建議?

+0

我不知道我得到downvote,如果我有我的問題的例子和乾淨的問題。 – uzhas

回答

1

從什麼,我的理解是不是

data = { Alice: {}, Bob: {}} 

people數組的長度爲n

people = ['Alice', 'Bob'] 

,你想讓它反映data對象。

所以你可以做什麼,是對people陣圖,並插入每個字符串值作爲你的對象,其本身持有空對象的屬性:

this.people.map(x => this.data[x] = {}) 

這樣的數據現在會根據您的示例看起來像您的Plunker中的硬編碼data