AngularJS: Как получить ключ объекта JSON - программирование
Подтвердить что ты не робот

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. Я понятия не имею, что такое ключи, как в них может быть что угодно. Как я могу это сделать?

4b9b3361

Ответ 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}} также может отображаться за один раз, массив будет отображаться как список значений, разделенных запятыми.