AngularJS: Как получить ключ объекта JSON
Я не уверен, что это вообще связано с 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. Я понятия не имею, что такое ключи, как в них может быть что угодно. Как я могу это сделать?
Ответы
Ответ 1
Как указано в документе:
(ключ, значение) в выражении - где ключ и значение могут быть любыми идентифицируемыми пользователем идентификаторами, а выражение - выражением области видимости, которое позволяет подсчету коллекции.
<div ng-repeat="(key, data) in dataSets">
{{key}}
</div>
Ответ 2
для доступа к паре ключ-значение Json из внутреннего контроллера в AngularJs.
for(var keyName in $scope.dataSets){
var key=keyName ;
var value= $scope.dataSets[keyName ];
alert(key)
alert(JSON.stringify(value));
}
Ответ 3
если dataSets - это массив, а не объект, который вам сначала нужен, чтобы ng-повторить элементы массива, а затем ключ или значение.
<div ng-repeat="item in dataSets">
<div ng-repeat="(key, value) in item">
{{key}}
{{value}}
</div>
</div>
только мои 2 цента.
Ответ 4
Для каждого набора данных в наборах данных напечатайте ключ, а затем выполните итерацию по отдельным элементам:
<div ng-repeat="(key, dataSet) in dataSets">
<div>{{key}}</div>
<div ng-repeat="value in dataSet">
{{value}}
</div>
</div>
{{dataset}} также может отображаться за один раз, массив будет отображаться как список значений, разделенных запятыми.