集合
define([
'jquery',
'underscore',
'backbone'
], function($, _, Backbone){
console.log("Loaded");
var Jobs = Backbone.Collection.extend({
url: function () {
return 'http://domain.com/api/jobs?page='+this.page+''
},
page: 1
});
return Jobs;
});
模型
define([
'underscore',
'backbone'
], function(_, Backbone){
var JobFilterModel = Backbone.Model.extend({
defaults: {
T: '1',
PT: '1',
C: '1',
I: '1'
}
});
// Return the model for the module
return JobFilterModel;
});
在我的一个视图中,我设置了模型
var jobListFilterModelUpdate = new JobListFilterModel();
jobListFilterModelUpdate.set({value:isChecked});
我正在尝试从Collection中检索MODEL,这样我就可以使用URL发送正确的QUERY。
问题1
如何从集合中检索模型
问题2
检索到的集合是否是我在View中设置的数据的更新模型?
答案 0 :(得分:1)
当您声明Collection
时,您需要指定model
属性,例如:
var Jobs = Backbone.Collection.extend({
url: function () {
return 'http://punchgag.com/api/jobs?page='+this.page+''
},
page: 1,
model: JobFilterModel
});
创建新模型后,您需要将其添加到集合中(假设您已创建jobsCollection
):
var jobListFilterModelUpdate = new JobListFilterModel();
jobListFilterModelUpdate.set({value:isChecked});
jobsCollection.add(jobListFilterModelUpdate);
回答1
您可以根据id
,collection.get(id)
从集合中检索模型。此处JobFilterModel
似乎没有任何ID(您可以设置idAttribute
的{{1}}属性来创建自定义Model
属性)。 Backbone还在客户端创建了独特的ID,但我不知道它们对您有什么帮助。如果您想根据模型的任何属性检索模型,可以使用collection.findWhere()或collection.where()。
回答2
是。它将取决于您id
与View
的链接方式。