2016-04-29 3 views
1

Ich lerne Backbone.js und das Lesen durch die docs ich eine harte Zeit haben die folgenden Verständnis:Was sind rohe Attributobjekte in Backbone?

"If a model property is defined, you may also pass raw attributes objects, and have them be vivified as instances of the model." 

bei Collection#model Sehen, sie dem Beispiel bereitgestellt:

var Library = Backbone.Collection.extend({ 
    model: Book 
}); 

Aber wie kann ich weiter von dort und "rohe Attribute Objekte übergeben"?

******** bearbeiten ***********

Ok im Rückblick jetzt denke ich, was das bedeutet, ist, dass, wenn ich das Modell „Book“ der addierte Bibliotheks-Sammlung, jetzt kann ich tun -

Und das wird 2 Modelle in der Lib-Sammlung mit den entsprechenden Namen erstellt haben, richtig?

+0

Ja das würde 2 Modelle in der Lib-Sammlung erstellen; –

Antwort

1

Raw Objekt in diesem Fall ist nur ein einfaches Objekt (kein bereits gebautes Modell)

In diesem Beispiel ist die Sammlung von Typ Book (das ist ein Modell, das einige vordefinierte Attribute und Standardwerte haben könnte)

var Library = Backbone.Collection.extend({ 
    model: Book 
}); 

So Bibliothek ist eine Sammlung Book Modelle.

Wenn Sie ein neues Buch als Teil der Bibliothek erstellen möchten, können Sie auf zwei Arten vorgehen.

1.) Erstellen Sie ein Modell erste und fügen Sie ihn in der Sammlung

var book1 = new Book({ 
    id: 1, 
    name: 'abc' 
}); 

Library.add(book1); 

2.) Der Pass in die Raw zur Kollektions direkt Attribute.

Library.add([{id: 1, name: 'abc'}]); 
+0

in der ersten Methode, warum müssen Sie Buch1 der Bibliothek hinzufügen? Sind nicht alle Book-Modelle bereits seit der ersten Definition des Modells Teil der Bibliothekssammlung: Buch als Teil der Bibliothekssammlung? – akantoword

+1

Das Modell kann als Entität eigenständig existieren. Wenn Sie möchten, dass das zur Sammlung hinzugefügt wird, müssen Sie es explizit zur Sammlung hinzufügen. Nur dann wird es Teil der Bibliothek sein. –

+0

oh, was ist dann der Zweck des ersten Teils? - Library = Backbone.Collection.extend ({ Modell: Buch }); bedeutet dies nur, dass alles, was Sie hinzufügen, ein Modell des Typs Buch sein wird? – akantoword