2016-07-31 68 views
0

我有一個json對象,看起來像這樣。angular2和iter通過哈希陣列

models = [{ 
    "mid_704a2eb91eb54299bb3cc4487bf14557": { 
     "data": {}, 
     "name": "uberme" 
    }, 
    "mid_8ccd9a1340b54e76915c690b46eb996a": { 
     "data": {}, 
     "name": "test" 
    } 
}] 

在我的模板,我怎麼這麼遍歷表看起來是這樣的:

uberme mid_704a2eb91eb54299bb3cc4487bf14557 
test mid_8ccd9a1340b54e76915c690b46eb996a 

我只知道怎麼做以下,但沒有工作;

 <tr *ngFor="let model of models"> 
     {{ model | json}} 
     <td>{{ model.name }}</td> 

回答

0

的問題是,這些屬性名稱(如mid_704a2eb91eb54299bb3cc4487bf14557)是不固定的,並事先知道你使用它們,所以你需要使用Object.keys()得到他們的價值。

所以當models是:

models = [{ 
    "mid_704a2eb91eb54299bb3cc4487bf14557": { 
     "data": {}, 
     "name": "uberme" 
    }, 
    "mid_8ccd9a1340b54e76915c690b46eb996a": { 
     "data": {}, 
     "name": "test" 
    } 
}] 

然後Object.keys(models[0])回報['mid_704a2eb91eb54299bb3cc4487bf14557', 'mid_8ccd9a1340b54e76915c690b46eb996a']

這樣一來,如果對象始終保持這個結構,你可以使用類似:

<tr *ngFor="let key of Object.keys(models[0])"> 
    <td>{{ models[0][key].name }} {{ key }}</td>