2016-07-12 10 views
-1

ich von Array von bloßen Objekten eine Backbone Sammlung aktualisieren, indem reset mit:Backbone Sammlung: add Logik Artikel Modelle

const collection = new Backbone.Collection(); 
// ... 
const switches = [ 
    { color: "red", on: false }, 
    { color: "green", on: false }, 
    { color: "blue", on: true } 
]; 
collection.reset(switches); 

Nun gibt es drei Modelle in meiner Sammlung. Ich möchte, dass sie toggle() Methode haben:

toggle: function() { 
    this.save({ on: !this.get("on") }) 
} 

Wie kann ich es hinzufügen?

Antwort

1

Wenn Sie ein Modell nicht an eine Backbone-Sammlung übergeben, verwendet Backbone normale Modelle. Wenn Sie ein angepasste Modelle haben wollen, sollten Sie ein Modell unter Verwendung der Backbone.Model.extend() Funktion definieren und in die Sammlung übergeben:

const Model = Backbone.Model.extend({ 
    toggle: function() { 
     this.save({ on: !this.get("on") }) 
    } 
}); 
const Collection = Backbone.Collection.extend({ 
    model: Model 
}); 
const collection = new Collection(); 
+0

Ich habe die Frage ersetzt Pfeil Funktion mit normalen aktualisiert. Der Wert von "this" ist nicht das Problem, die Frage ist nicht darüber. –

+0

@MikhailBatcer Ja. Ich werde die Antwort aktualisieren. – undefined