J'ai l'objet JSON Array comme indiqué ci-dessous.
$scope.items =
[
{Name: "Soap", Price: "25", Quantity: "10"},
{Name: "Bag", Price: "100", Quantity: "15"},
{Name: "Pen", Price: "15", Quantity: "13"}
];
Je veux obtenir les clés et les valeurs séparément en utilisant ng-repeat dans angular.js. J'ai essayé le code suivant mais cela ne fonctionne pas.
<tr ng-repeat="(key, val) in items">
<td>{{key}}</td>
<td>{{val}}</td>
</tr>
Je crois que le problème vient des accolades '[' et ']'. Quelqu'un peut-il s'il vous plaît me suggérer comment le problème peut être résolu?
Merci beaucoup pour la réponse. J'ai essayé votre code et son fonctionnement. Mais ma vraie exigence est d’afficher les éléments comme indiqué ci-dessous.
Name Price Quantity
Soap 25 10
Bag 100 15
Pen 15 13
J'utilise certains <tr>
et <td>
en HTML. Mais rien ne s'affiche à l'écran. Les codes sont indiqués ci-dessous.
<table>
<tr ng-repeat="item in items">
<tr ng-repeat="(key, val) in item">
<td>{{key}}</td>
<td>{{val}}</td>
</tr>
</tr>
</table>
Je sais que <tr>
à l'intérieur d'un autre <tr>
n'est pas autorisé par HTML. J'ai essayé par le meilleur.Mais pas de chance . Ce serait formidable si vous pouviez m'aider dans cette . Merci d'avance.
Vous avez un tableau d'objets, vous devrez donc utiliser ng-repeat
deux fois, par exemple:
<ul ng-repeat="item in items">
<li ng-repeat="(key, val) in item">
{{key}}: {{val}}
</li>
</ul>
Exemple: http://jsfiddle.net/Vwsej/
Notez que l'ordre des propriétés dans les objets n'est pas garanti.
<table>
<tr>
<th ng-repeat="(key, val) in items[0]">{{key}}</th>
</tr>
<tr ng-repeat="item in items">
<td ng-repeat="(key, val) in item">{{val}}</td>
</tr>
</table>
Exemple: http://jsfiddle.net/Vwsej/2/
Je viens juste de commencer à vérifier Angular (je suis donc tout à fait sûr qu’il existe d’autres moyens plus optimaux de le faire), et j’ai trouvé cette question tout en recherchant des exemples de ng-repeat.
L'exigence par le poseur (avec la mise à jour):
"... mais ma vraie exigence est d'afficher les éléments comme indiqué ci-dessous .."
semblait assez réaliste (et simple), alors je me suis dit que je pouvais mal essayer et obtenir la structure exacte souhaitée.
angular.module('appTest', [])
.controller("repeatCtrl", function($scope) {
$scope.items = [{
Name: "Soap",
Price: "25",
Quantity: "10"
}, {
Name: "Bag",
Price: "100",
Quantity: "15"
}, {
Name: "Pen",
Price: "15",
Quantity: "13"
}];
})
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.2.23/angular.min.js"></script>
<body ng-app="appTest">
<section ng-controller="repeatCtrl">
<table>
<thead>
<tr ng-repeat="item in items | limitTo:1">
<th ng-repeat="(key, val) in item">
{{key}}
</th>
</tr>
</thead>
<tbody>
<tr ng-repeat="item in items">
<td ng-repeat="(key, val) in item">
{{val}}
</td>
</tr>
</tbody>
</table>
</section>
</body>
Le filtre limitTo: (n) est la clé. Je ne suis toujours pas sûr d'avoir plusieurs méthodes de répétition, mais je ne peux pas penser à une autre alternative pour le moment.
Solution J'ai un objet json qui a des données
[{"name":"Ata","email":"[email protected]"}]
Vous pouvez utiliser l'approche suivante pour effectuer une itération dans ng-repeat et utiliser le format de tableau au lieu de liste.
<div class="container" ng-controller="fetchdataCtrl">
<ul ng-repeat="item in numbers">
<li>
{{item.name}}: {{item.email}}
</li>
</ul>
</div>
essaye ça..
<tr ng-repeat='item in items'>
<td>{{item.Name}}</td>
<td>{{item.Price}}</td>
<td>{{item.Quantity}}</td>
</tr>