In meinem Controller habe ich Daten wie:
$scope.object = data
Diese Daten sind nun das Wörterbuch mit Schlüsseln und Werten von json
.
Ich kann auf das Attribut mit object.name
in der Vorlage zugreifen . Gibt es eine Möglichkeit, wie ich auch über die Schlüssel iterieren und sie in einer Tabelle wie anzeigen kann?
<tr><td> {{key}} </td> <td> data.key </td>
Die Daten sind so
{
"id": 2,
"project": "wewe2012",
"date": "2013-02-26",
"description": "ewew",
"eet_no": "ewew",
}
angularjs
angularjs-ng-repeat
user192362127
quelle
quelle
ngRepeat
. Tatsächlich habe ich einmal gehört, dass ein Mitglied des Kernteams es bedauert, jemals die Möglichkeit dazu implementiert zu haben! Normalerweise ist es besser, das Objekt in der Steuerung in ein Array umzuwandeln. Dies macht die Absicht klarer und verringert in bestimmten Fällen das Risiko für seltsames / unvorhersehbares Verhalten. Und Sie können wie gewohnt sortieren. :-)Object.getOwnPropertyNames(data).map(k => ({key:k, value:data[k]));
.Wenn Sie den Eigenschaftswert mit bidirektionaler Bindung bearbeiten möchten:
quelle
ng-model="value"
?ng-repeat
im Wesentlichen über das Objekt und gibt Schlüssel-Wert-Paare zurück. Stellen Sie es sich so vorfor(var value in arrayOfValues) { ... }
. Wenn Sie die Variablevalue
in Ihrer Schleife neu zuweisen , ändern Sie nicht, was sich darin befindet, sondernarrayOfValues
zeigen nurvalue
auf ein neues Objekt.Ich glaube nicht, dass es dafür eine integrierte Funktion in Angular gibt, aber Sie können dies tun, indem Sie eine separate Bereichseigenschaft erstellen, die alle Headernamen enthält, und Sie können diese Eigenschaft automatisch wie folgt ausfüllen:
quelle
Wir können das folgende Verfahren befolgen, um die Anzeige von Schlüsselwerten in alphabetischer Reihenfolge zu vermeiden.
Javascript
HTML
quelle
Ein ToDo-Listenbeispiel, das das Objekt durchläuft
ng-repeat
:quelle
Vollständiges Beispiel hier: -
quelle
https://docs.angularjs.org/api/ng/directive/ngRepeat
quelle
Sie können dies in Ihrem Javascript (Controller) oder in Ihrem HTML (Winkelansicht) tun ...
js:
html:
Ich glaube, der HTML-Weg ist eckiger, aber Sie können ihn auch in Ihrem Controller ausführen und in Ihrem HTML-Code abrufen ...
Auch keine schlechte Idee, sich die Objektschlüssel anzusehen, sie geben Ihnen ein Array der Schlüssel, wenn Sie sie brauchen, mehr Infos hier:
https://developer.mozilla.org/en/docs/Web/JavaScript/Reference/Global_Objects/Object/keys
quelle
Hier ist ein Arbeitsbeispiel:
bearbeitet
quelle