49

これがAngularJSと関係があるのか​​、JSONのみに関連しているのかはわかりません。

とにかく、次のJSONがあるとしましょう。

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

現在、ng-repeatディレクティブを使用して、上記を次のように出力しています。

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

タグ内に期待するのは、 <div></div>「名前」と「性別」を印刷することです。つまり、JSONのキーを印刷したいと思います。キーは何でもよいので、私にはキーが何であるかわかりません。これどうやってするの?

4

4 に答える 4

100

ドキュメントがそれを述べているように:

式の(key、value)–ここで、keyとvalueは任意のユーザー定義の識別子であり、expressionはコレクションに列挙するスコープ式です。

<div ng-repeat="(key, data) in dataSets">
  {{key}}
</div>
于 2013-03-20T14:13:36.807 に答える
11

AngularJsのコントローラー内からJsonのキーと値のペアにアクセスするため。

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

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

}
于 2015-10-14T08:34:16.423 に答える
4

dataSetsが配列であり、オブジェクトではない場合は、最初に配列項目をng-繰り返し、次にキーまたは値を繰り返す必要があります。

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

ちょうど私の2セント。

于 2015-04-23T13:44:41.970 に答える
2

dataSets内のすべてのdataSetについて、キーを出力してから、個々の項目を繰り返し処理します。

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

{{dataset}}も一度に表示でき、配列はカンマ区切りの値のリストとして表示されます。

于 2016-06-29T12:48:48.140 に答える