2013-03-20 15 views
47

Nie jestem pewien, czy ma to jakikolwiek związek z AngularJS w ogóle i czy dotyczy tylko JSON.AngularJS: Jak zdobyć klucz obiektu JSON

Byle jak, powiedzmy, że mamy następujący JSON:

$scope.dataSets = { 
    "names": ["Horace", "Slughorn", "Severus", "Snape"], 
    "genders": ["Male", "Female"] 
} 

Teraz używam dyrektywę NG-repeat wydrukować powyższy sposób następujący:

<div ng-repeat="data in dataSets> 
    //Continue readig to know what I am expcting here 
</div> 

Czego oczekuję w tagach <div></div> jest drukowanie "nazwa" i "płeć". Oznacza to, że chcę wydrukować klucze JSON. Nie mam pojęcia, co to są klucze, bo mogą być cokolwiek. Jak mogę to zrobić?

Odpowiedz

94

jak Dokumenty podać go:

(klucz, wartość) w wyrażeniu - gdzie klucz i wartość może być żadnych identyfikatory zdefiniowane przez użytkownika, a wyrażenie jest wyrażenie zakres dając kolekcję wyliczyć.

<div ng-repeat="(key, data) in dataSets"> 
    {{key}} 
</div> 
+1

Czy można wykorzystać jako przykład JSON PO? –

+4

Nie działa dla mnie. – CodyBugstein

+1

działa dobrze dla klucza, a co z wartością? –

2

jeśli zbiorów danych jest tablicą, a nie przedmiot trzeba najpierw NG-powtarzanie elementów tablicy, a następnie klawisz lub wartość.

<div ng-repeat="item in dataSets"> 
    <div ng-repeat="(key, value) in item"> 
    {{key}} 
    {{value}} 
    </div> 
</div> 

tylko moje 2 centy.

8

dostępu JSON parę klucz-wartość od wewnątrz kontrolera w angularjs.

for(var keyName in $scope.dataSets){   
    var key=keyName ; 
    var value= $scope.dataSets[keyName ]; 

    alert(key) 
    alert(JSON.stringify(value)); 

} 
1

Dla każdego zestawu danych w zbiorach danych, drukowanie klawisz a następnie iterację poszczególnych elementów:

<div ng-repeat="(key, dataSet) in dataSets"> 
    <div>{{key}}</div> 
    <div ng-repeat="value in dataSet"> 
     {{value}} 
    </div> 
</div> 

{{zbiór danych}} mogą być wyświetlane w jednym zamachem również, tablica będzie wyświetlane jako rozdzielana przecinkami lista wartości.