2016-08-08 3 views
1

Ich habe ein Objekt mit Schlüssel-Wert-Paaren, die so aussieht. Sie werden sehen, dass der Schlüssel ein Array als Wert hat.ng-repeat through Objekt mit Wert als Array Winkel

$scope.testObj = { 

    "London":[ 
     {"id":1,"city":"London","country":"GB","name":"Test1"}, 
     {"id":4,"city":"London","country":"GB","name":"Test2"} 
    ], 

    "Los Angeles":[ 
     {"id":8,"city":"LA","country":"US","name":"Test3"} 
    ] 

} 

Ich möchte den Namen neben der Stadt im vorderen Ende mit eckigen anzeigen. Um dies zu tun, habe ich viele Ansätze ausprobiert und nach $ index gesucht, kann aber nicht herausfinden, wie das funktioniert.

<div ng-repeat="(key, val) in jobsByCity track by $index"> 
    {{key}}:{{val[$index].name}} 
</div> 

Ich habe auch bei diesem Ansatz sieht, nisten ng-repeat

<div ng-repeat="(key, val) in testCity"> 
    {{key}} 
    <div ng-repeat="test in val[$index].name"> 
     {{test}} 
    </div> 
    </div> 
+0

Ich denke, man verschachtelte ng-Wiederholungen – k102

+0

@ K102 verwenden muss ich denken, dass Sie wahrscheinlich recht, ich habe dies oben versucht. Bitte beachten Sie die aktualisierte Frage –

+1

London und Los Angeles brauchen auch Zitate. – Rob

Antwort

3

Just another verwenden ng-repeat über den Wert iterieren:

<div ng-repeat="(key, val) in jobsByCity"> 
    <div ng-repeat="subValue in val track by $index"> 
     {{key}}:{{subValue.name}} 
    </div> 
</div> 

Beachten Sie auch, dass Ihre Los Angeles Eigenschaft Bedürfnisse in Anführungszeichen stehen, sonst ist es kein gültiges Javascript.

Siehe this jsfiddle

+0

das ist das Baby! auf das Geld! Danke @devqon –

Verwandte Themen