AngularJS - Wie kann ich den Eigenschaftsnamen innerhalb einer ng-Wiederholung referenzieren?

134

Neben dem Rendern des Werts der Eigenschaften in einem Objekt möchte ich auch den Eigenschaftsnamen als Bezeichnung rendern. Gibt es eine Möglichkeit, dies zu tun ng-repeat? Beispielsweise:

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

Was so etwas ausspucken könnte:

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

Antworten:

337

Versuche dies:

<ul>
    <li ng-repeat="(key,val) in data">{{key}}: {{val}}</li>
</ul>
Andrew Joslin
quelle
30
@Andy - sie sind eigentlich nicht so toll. Sie benötigen einfachere tatsächliche Codebeispiele, wie Sie hier gezeigt haben. Vielen Dank für Ihre Antwort und bitte posten Sie weiter auf StackOverflow. Ihr Beitrag hat mir wirklich geholfen zu verstehen, wie ich auf die AngularJS-Dokumente zugreifen kann. Viele Grüße und positive Stimmen!
Noogrub
so einfach, aber nicht daran gedacht: D tnx!
Guntram
Was tun, wenn ich eine Funktion wie --- myFunc (Schlüssel) --- habe, die den Schlüsselwert benötigt? Diese Gonne zeigt mir den Namensschlüssel in HTML und nicht den Wert
Nejmeddine Jammeli
28

Das Problem mit der Dokumentation ist, dass dort steht (key, value)... ich habe einige Zeit gebraucht, um herauszufinden, dass es aus diesem Grund nicht funktioniert

darkyndy
quelle
1
Vielen Dank. Du hast recht. Zwischen dem Komma und dem Wert darf kein Leerzeichen stehen. (Schlüssel, Wert) nicht (Schlüssel, Wert).
Chad DeShon
9
Vielleicht sind die Dinge in neueren Versionen von Angular anders, aber Sie können einen Abstand dazwischen haben (key, val). So mache ich das oft.
EnigmaRM
Ich fand (Schlüssel, Wert) nicht für mich funktioniert. Wollen Sie damit sagen, dass es am Leerzeichen liegt? Meine Güte! Aber danke.
Code-Sushi
2
Funktioniert für mich auch mit dem Raum.
Shawn Lauzon
Wert gegen Wert, der den Raum beeinflusst?
Danny Mahoney