So ändern Sie Standard-Modell Attribute mit set-Methode in Backbone.js
Habe ich einige defults Daten im Modell
window.AppState = Backbone.Model.extend({
defaults: function() {
return {
country: false,
region: false
};
}
});
var appState = new AppState();
Dann im Router bekomme ich array mit den neuen Werten für Modell:
[["country", "new country value"], ["region", "new region value"]]
Und nun in einer for-Schleife i Zyklus update, werden alle empfangenen params...
Ich merke es auf diese Weise
appState.attributes[arg] = val;
aber ich denke, es ist nicht klar, weil Sie in der Dokumentation Backbone.js ich Las über die "Attribut" - Methode, und siehe da:
"Bitte verwenden Sie set zum aktualisieren der Attribute, statt Sie zu verändern direkt."
Also meine Fragen ist: Wie kann ich Attribute ändern der Standardwerte mit set-Methode?
InformationsquelleAutor Bobbe | 2011-11-23
Du musst angemeldet sein, um einen Kommentar abzugeben.
versuchen die
.set()
Funktion...sobald Sie die Argumente mit
.set()
wird es den Standardwert überschreiben.dein Beispiel ein bisschen modifiziert:
Bemerkung
diese for-Schleife hängt stark von der Struktur der Elemente in einem array, so wie ich es schrieb, wird die Arbeit für das array, das Sie gab, in Ihrem Beispiel, sollte nichts ändern, das müssen Sie ändern die Funktionsweise der for-Schleife
Bemerkung 2
wenn Sie diese Technik häufiger, Sie könnten immer extrahieren, die Funktionalität in eine helper-Methode.
ich änderte meine Antwort mit dem, was Sie einfügen müssen Sie die änderungen. eigentlich sind Sie festlegen, wie ein Objekt, Sie brauchen nicht in Schleife gesetzt, aber Sie benötigen eine Schleife, um das Objekt zu erstellen :s
var attrs = {}; attrs[key] = value; model.set(attrs);
Ja das ist wahr =) danke für Sie Sander und maxl0rd das ist, was ich meine, jetzt funktioniert es perfekt.
InformationsquelleAutor Sander