AngularJs Entfernen Sie doppelte Elemente in ng-repeat
Habe ich ein Wörterbuch abgelegt ist, in field_detail
<li ng-repeat = "field in field_detail">{{field.displayName}}</li>
Nun möchte ich nicht zu gehören doppelte displayName
von field_detail
, was filter
sollte ich verwenden?
InformationsquelleAutor der Frage Pawan | 2013-11-26
Du musst angemeldet sein, um einen Kommentar abzugeben.
Nur einen filter erstellen, wird die eindeutige Werte, die wahrscheinlich durch einen Schlüssel. So etwas tun sollte (von mir nicht getestet, daher lasse ich das Geschäft, Sie, dies ist nur um Ihnen eine Idee geben):
Hinweis: Array.indexOf() funktioniert nicht in IE8wenn Sie also Unterstützung IE8, müssen Sie die stub im indexOf(), oder müssen Sie mit einem etwas anderen Ansatz.
Andere Gedanken: Es ist wahrscheinlich besser, nur einen filter zu erstellen, nutzt die einzigartige Funktion in lowdash oder Unterstrich, wenn Sie bereits verweisen auf die Bibliotheken.
InformationsquelleAutor der Antwort Ben Lesh
Arbeitete ich bis ein JSFiddle auf der Grundlage der Antwort von Ben Leine:
http://jsfiddle.net/ThunderHemlock/bvsvzrr5/1/
Dank, Ben. Andere Antworten erforderlich, die Verwendung von AngularJS UI oder andere zusätzliche frameworks.
InformationsquelleAutor der Antwort Thunder Hemlock
Zur piggyback-off von Ben Lesh, habe ich noch die option zum entfernen von doppelten Objekten in einem array, wenn der keyname ist falsy:
InformationsquelleAutor der Antwort Shawn Dotey
Bekomme ich ein ticket sagen, wenn der Benutzer auf speichern klickt Sie erhalten eine Fehlermeldung besagt, dass Unique-Constraint-Verletzung, bla bla.. Sie wollen mein Bild, um Duplikate zu sein, bevor die Datenbank erzwingt die Einschränkung. Also schrieb ich eine Funktion um eine Schleife durch alle Instanzen des Arrays von Objekten und Anzahl der Instanzen.
...und ich diese Funktion in mein script zu verhindern, dass das speichern so:
...und um dem Benutzer zu zeigen, sobald Sie einen neuen Datensatz hinzufügen, wie dies:
... und dann in meinem HTML habe ich etwas, um dem Benutzer mitzuteilen, wo das Duplikat ist...
Ja, ich bin absichtlich Vergleich der einzelnen Instanz auf sich selbst. Es ist weniger code, der Weise. Ich überprüfen, um zu sehen, ob .cnt - > 1 > 0.
Auch zur Kenntnis zu nehmen... die kpiList.cnt-Feld nicht vorhanden ist, bis die Funktion zum ersten mal ausgeführt wird. Die ng-show="Zeile.cnt - > 1" zeigen an, dass eine falsche (nicht truthy) und werden erst angezeigt, wenn eine Zeile.cnt hat einen Wert.
Außerdem sollten Sie verwenden ein StyleSheet zur Formatierung des span, anstatt Sie in das style-Attribut.
InformationsquelleAutor der Antwort D. Kermott
Erstellen Sie Ihre eigene Funktion:
});
InformationsquelleAutor der Antwort Akhilesh Kumar