Setzen Sie das Attribut aller Modelle in der Backbone-Sammlung
Ich verstehen, dass die Verwendung zupfen Methode, die wir bekommen können, ein array von Attributen, jedes Modell innerhalb eines backbone-Sammlung
var idsInCollection = collection.pluck('id'); //outputs ["id1","id2"...]
Möchte ich, wenn es eine Methode gibt ein Attribut, das jedes Modell in der Kollektion,
var urlArray = ["https://url1", "https://url1" ...];
collection.WHAT_IS_THIS_METHOD({"urls": urlArray});
Kommentar zu dem Problem
Möchten Sie das gesamte array jedes Modell, oder einfach nur ein array-Eintrag, um jedes Modell mit dem entsprechenden index?
array-Eintrag, um jedes Modell mit dem entsprechenden index
InformationsquelleAutor der Frage sublime | 2012-12-14
Du musst angemeldet sein, um einen Kommentar abzugeben.
Ich nicht, es ist eine Methode für Sie, aber Sie können versuchen:
InformationsquelleAutor der Antwort David
Es ist nicht genau, eine bereits vorhandene Methode, aber
invoke
lassen Sie uns tun etwas ähnliches in einer einzigen Zeile:Wenn Sie wollte, um eine re-usable set-Methode auf alle Ihre Sammlungen, können Sie das folgende tun:
* EDIT *
Rückgrat hat seit fügte seine eigenen
set
Methode, und wenn Sie ihn überschreiben Sie vollständig brechen Sie IhreCollection
. Deshalb das obige Beispiel sollte wirklich umbenannt werden, umsetModelAttributes
oder etwas anderes, das ist nichtset
.InformationsquelleAutor der Antwort machineghost
Erweiterung auf Davids Antwort, können Sie ganz einfach setzen Sie diese Funktionalität in eine eigene Methode auf die collection. Hier ist mein Weg, es zu tun mit coffeescript:
Wenn Sie wollten, tun Sie es in vanilla JS ist es genau das gleiche, aber nicht die Nutzung der macht von Klassen oder hinweisfeldern. Also eher:
InformationsquelleAutor der Antwort Matt Fletcher
Dachte, ich würde post meinen etwas aktualisiert Methode basiert auf machineghost version. Dies nutzt lodash invokeMap-Methode anstelle von Unterstrich invoke. Es unterstützt die gleiche syntax wie das standard-Modell.set-Methode ... z.B. ('prop', 'val') oder ({prop: val', prop: val}) sowie die Annahme und übergabe eines options-Objekt.
InformationsquelleAutor der Antwort relic
Wenn Sie aufrufen, die syntax nach dem Unterstrich Website sollte
_.invoke(list, methodName, *Argumente) http://underscorejs.org/#invoke
So dass die obige Funktion erwähnt machineghost sollte
Hoffe, das hilft 🙂
InformationsquelleAutor der Antwort TheProfessor117