So erstellen Sie eine Sammlung mit verschiedenen Modell-Typen in backbone.js?
Ich versuche diese um zu arbeiten, sondern ich mit ihm zu kämpfen. Meine Sammlung endet leer, wenn ich den success
Rückruf auf fetch
. Es nicht geben Sie mir keine klaren Fehler, die du während parse
. Hier ist mein code:
Meiner Sammlung:
VOR.Collections.GridItems = Backbone.Collection.extend({
model : VOR.Models.GridItem,
url: "assets/data/grid.json",
parse: function(response){
var self = this;
_.each(response, function(griditem){
switch(griditem.type){
case "news":
self.add(new VOR.Models.NewsGridItem(griditem));
break;
default:
self.add(new VOR.Models.StandardGridItem(griditem));
break;
}
});
}
});
Dies ist, wie ich das erstellen der Sammlung:
griditems = new VOR.Collections.GridItems();
griditems.fetch({
error: function(e) {console.log(e);},
success: function(msg) {
console.log(msg)
});
Wenn ich die Konsole msg
ich bekommen:
Object { length=0, - Modelle=[0], _byId={...}, mehr...}
Habe ich auch protokolliert, die parse
Funktion in der Sammlung und es läuft durch die JSON-Datei einwandfrei...alle Ideen, was könnte hier falsch sein? Die Länge der msg
Objekt sollte 5 sein..also das ist, wie viele Male die parse
Funktion loops und (sollte) ein Modell hinzufügen zu der Sammlung.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Einer netten Art und Weise des Umgangs mit diesen ist neu die
model
Attribut, die sagen, die Sammlung, wie zu hinzufügen eines neuen Modells zu der Sammlung, wie in diesem POST : Ein Backbone.js Sammlung von mehreren Unterklassen Modell (danke @rulfzid, die meine Frage beantwortet :))In Ihrem Fall, sollten Sie in der Lage sein, um das Modell zu definieren Attribute wie diese :
parse
weil diese für die Bootstrap-Daten als auch.var VOR.Collections.GridItems = Backbone.Collection.extend({
Es wird besser sein, speichern Sie Ihre grid-Elemente in verschiedenen Sammlungen und wickeln Sie Sie mit dem Modell wie folgt:
Dies ist, was der doc sagt, dass Sie tun sollen, analysieren. Was auch immer Sie zurück gesetzt werden, da die Sammlung beginnend array. Dies ist, wo er aufgerufen wird:
Also würde ich vorschlagen, ändern Sie Ihr analysieren zu: