我正在学习Backbone.
我想创建一个包含不同模型的列表,具有不同的属性.
例如,按任何顺序列出文件夹内容,其中可包括类型文件的模型和类型文件夹的模型.
file : {
title : "",
date : "",
type : "",
yaddayadda : ""
}
folder : {
title : "",
date : "",
haminahamina : ""
}
Run Code Online (Sandbox Code Playgroud)
在Backbone中表示这个的正确方法是什么?是否可以使用多个模型的单个集合?
我试图让这个工作,但我很努力.当我检查success回调时,我的收藏结果为空fetch.它没有给我任何明显的错误parse.这是我的代码:
我的收藏:
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;
}
});
}
});
Run Code Online (Sandbox Code Playgroud)
这就是我创建集合的方式:
griditems = new VOR.Collections.GridItems();
griditems.fetch({
error: function(e) {console.log(e);},
success: function(msg) {
console.log(msg)
});
Run Code Online (Sandbox Code Playgroud)
当我控制日志时,msg我得到:对象{length = 0,models = [0],_ byId = {...},更多...}
我还在parse集合中记录了该函数,它通过JSON文件运行就好......任何关于这里可能出错的想法?msg对象的长度应为5..ie,即parse函数循环和(应该)将模型添加到集合的次数.