Backbone.js 集合获取返回一个模型,但响应包含所有模型
我是主干网新手,在获取集合时,我可以看到服务器返回所有15个集合。fetch success返回响应对象中的所有15个模型,但集合对象只有15个模型中的最后一个Backbone.js 集合获取返回一个模型,但响应包含所有模型,backbone.js,Backbone.js,我是主干网新手,在获取集合时,我可以看到服务器返回所有15个集合。fetch success返回响应对象中的所有15个模型,但集合对象只有15个模型中的最后一个 var BracketModel = Backbone.Model.extend({ defaults: { id: '', name: '', title: '' }, urlRoot: 'http://test.com/bracket/rest.php', ..... }), var
var BracketModel = Backbone.Model.extend({
defaults: {
id: '',
name: '',
title: ''
},
urlRoot: 'http://test.com/bracket/rest.php',
.....
}),
var BracketsCollection = Backbone.Collection.extend({
url: 'http://test.com/bracket/rest.php?op=list',
model: BracketModel,
}),
bracketCollection.fetch({
success: function (collection, response) {
// Collection.models only has one model, response has 15
var bracketsView = new BracketsView({collection: collection});
},
试一试
或
我现在还没有测试过,但如果我记得很清楚的话,两者都是等效的。第一个参数返回集合对象,您可以通过该对象访问不同的集合属性。第二个参数返回“一个数组,其中包含集合中每个模型的属性哈希”,这可能就是您要查找的内容 我通常使用的将集合传递给视图的模式如下所示:
var bracketCollection = new BracketsCollection();
var view = new brackatsView({collection: bracketCollection});
brackCollection.fetch();
然后在视图的初始化方法中执行以下操作:
this.listenTo(this.collection, 'sync', this.render);
这一切都是在创建集合和视图,然后在创建视图时告诉它集合的情况。对集合调用fetch是一个异步事件,即使在完成“同步”时也会触发该事件。视图将侦听此同步事件,发生时将调用渲染函数 谢谢,我试过了,但是这两个选项都没有将集合传递给视图,视图需要访问集合对象代码>注意撇号。“Collection.models只有一个模型,response有15个”有点奇怪。JSON是否以正确的格式和内容类型发送到浏览器?谢谢。问题确实出在从服务器返回的JSON上。集合中所有模型的id字段均为空。当我纠正这一点时,一切都正常了。这就可以做到了,集合希望模型通过其
id
唯一地标识出来,所以它可能将模型视为一个模型的15个副本/版本。
var bracketCollection = new BracketsCollection();
var view = new brackatsView({collection: bracketCollection});
brackCollection.fetch();
this.listenTo(this.collection, 'sync', this.render);