gpt4 book ai didi

inheritance - 如何在backbone.js 中创建具有多种模型类型的集合?

转载 作者:行者123 更新时间:2023-12-04 09:42:39 27 4
gpt4 key购买 nike

我正在努力让它发挥作用,但我很挣扎。当我查看 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;
}
});
}
});

这就是我创建集合的方式:
griditems = new VOR.Collections.GridItems();

griditems.fetch({
error: function(e) {console.log(e);},
success: function(msg) {
console.log(msg)
});

当我控制台日志 msg我得到:
对象 { length=0, models=[0], _byId={...}, more...}

我也登录了 parse集合中的函数,它通过 JSON 文件运行就好了......关于这里可能有什么问题的任何想法? msg的长度对象应该是 5..i.e.这是 parse的多少倍函数循环并且(应该)向集合中添加一个模型。

最佳答案

处理这个问题的一个好方法是重新定义 model属性,它告诉集合如何将新模型添加到集合中,如此 POST 中所述:A Backbone.js Collection of multiple Model subclasses (感谢@rulfzid,他回答了我的问题:))

在您的情况下,您应该能够像这样定义模型属性:

var VOR.Collections.GridItems = Backbone.Collection.extend({

url: "assets/data/grid.json",

model: function(attrs, options) {
switch(attrs.type) {
case "news":
return new VOR.Models.NewsGridItem(attrs, options);
default:
return new VOR.Models.StandardGridItem(attrs, options);
}
}

});

关于inheritance - 如何在backbone.js 中创建具有多种模型类型的集合?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7147040/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com