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>

Antworten:


337

Versuche dies:

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

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


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
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.