AngularJS - Come posso fare riferimento al nome della proprietà in un ng-Repeat


134

Oltre a rendere il valore delle proprietà in un oggetto, vorrei anche renderizzare il nome della proprietà come etichetta. C'è un modo per farlo con ng-repeat? Per esempio:

<ul>
    <li ng-repeat="option in data">{{propertyName}}: {{option}}</li>
</ul>

Che potrebbe sputare qualcosa del genere:

<ul>
    <li>Name: John</li>
    <li>Phone: (123) 456-7890</li>
    <li>Country: England</li>
</ul>

Risposte:


337

Prova questo:

<ul>
    <li ng-repeat="(key,val) in data">{{key}}: {{val}}</li>
</ul>

30
@Andy - in realtà non sono così fantastici. Hanno bisogno di esempi di codice reale più semplici come quelli mostrati qui. Grazie per la risposta e continua a pubblicare su StackOverflow; il tuo post mi ha davvero aiutato a capire come accedere ai documenti di AngularJS. Cordiali saluti e voto!
Noogrub,

così facile ma non ci ho pensato: D tnx!
Guntram,

cosa fare se ho una funzione come --- myFunc (chiave) --- che necessita del valore chiave questa gonne mi mostra la chiave nome in html e non il valore
Nejmeddine Jammeli

28

Il problema con la documentazione è che dice (key, value)con quello spazio ... mi ci è voluto un po 'di tempo per capire che a causa di ciò non funziona


1
Grazie mille. Hai ragione. Non è possibile avere uno spazio tra la virgola e il valore. (chiave, valore) non (chiave, valore).
Chad DeShon,

9
Forse le cose sono diverse nelle versioni più recenti di Angular, ma puoi avere uno spazio tra (key, val). È spesso così che lo faccio.
EnigmaRM,

Ho trovato (chiave, valore) non ha funzionato per me. Stai dicendo che è a causa dello spazio bianco ??? Accidenti! Ma grazie.
code-sushi,

2
Funziona anche per me con lo spazio.
Shawn Lauzon,

val vs value che influenza lo spazio?
Danny Mahoney,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.