Dans mon contrôleur, j'ai des données comme:
$scope.object = data
Maintenant, ces données sont le dictionnaire avec les clés et les valeurs de json
.
Je peux accéder à l'attribut avec object.name
dans le modèle. Existe-t-il un moyen de parcourir les touches également et de les afficher dans un tableau comme
<tr><td> {{key}} </td> <td> data.key </td>
Les données sont comme ça
{
"id": 2,
"project": "wewe2012",
"date": "2013-02-26",
"description": "ewew",
"eet_no": "ewew",
}
angularjs
angularjs-ng-repeat
user192362127
la source
la source
ngRepeat
. En fait, j'ai entendu un jour un membre de l'équipe centrale regretter d'avoir mis en œuvre cette capacité! Il est généralement préférable de transformer l'objet du contrôleur en tableau; cela rend l'intention plus claire et diminue le risque de comportement étrange / imprévisible dans certains cas. Et vous pouvez trier de la manière habituelle. :-)Object.getOwnPropertyNames(data).map(k => ({key:k, value:data[k]));
.Si vous souhaitez modifier la valeur de la propriété avec une liaison bidirectionnelle:
la source
ng-model="value"
?ng-repeat
essentiellement sur l'objet et renvoie des paires clé-valeur. Pensez-y commefor(var value in arrayOfValues) { ... }
. Si vous réaffectez la variable à l'value
intérieur de votre boucle, vous ne changez pas ce qui est à l'intérieurarrayOfValues
, vous redirigez simplementvalue
vers un nouvel objet.Je ne pense pas qu'il y ait une fonction intégrée en angulaire pour faire cela, mais vous pouvez le faire en créant une propriété d'étendue distincte contenant tous les noms d'en-tête, et vous pouvez remplir cette propriété automatiquement comme ceci:
la source
nous pouvons suivre la procédure ci-dessous pour éviter l'affichage des valeurs-clés dans l'ordre alphabétique.
Javascript
HTML
la source
Un exemple de liste de tâches qui passe en boucle sur l'objet en
ng-repeat
:la source
Exemple complet ici: -
la source
https://docs.angularjs.org/api/ng/directive/ngRepeat
la source
Vous pouvez le faire dans votre javascript (contrôleur) ou dans votre html (vue angulaire) ...
js:
html:
Je crois que la façon html est plus angulaire, mais vous pouvez aussi le faire dans votre contrôleur et le récupérer dans votre html ...
aussi pas une mauvaise idée de regarder les clés d'objet, elles vous donnent le tableau des clés si vous en avez besoin, plus d'informations ici:
https://developer.mozilla.org/en/docs/Web/JavaScript/Reference/Global_Objects/Object/keys
la source
Voici un exemple de travail:
édité
la source