2016-07-31 10 views
0

Ich habe ein JSON-Objekt, das so aussieht.angular2 und iter über Hash im Array

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

In meiner Vorlage, wie kann ich iterieren so sieht Tabelle wie folgt aus:

uberme mid_704a2eb91eb54299bb3cc4487bf14557 
test mid_8ccd9a1340b54e76915c690b46eb996a 

ich nur wissen, wie die unten zu tun, aber nicht funktioniert;

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

Antwort

0

Das Problem ist, dass diese Eigenschaftsnamen (wie mid_704a2eb91eb54299bb3cc4487bf14557) vorab nicht festgelegt und bekannt für Sie, sie zu verwenden, so müssen Sie Object.keys() verwenden, um ihren Wert zu erhalten. So

wenn die models ist:

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

Dann Object.keys(models[0]) kehrt ['mid_704a2eb91eb54299bb3cc4487bf14557', 'mid_8ccd9a1340b54e76915c690b46eb996a'].

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

diese Weise, wenn das Objekt immer diese Struktur hält, könnte man so etwas wie verwenden

Verwandte Themen