我需要使用骨干集合查询数据库。我不知道该怎么做。我假设我需要在某个地方设置一个网址,但我不知道它在哪里。我很抱歉这一定是一个非常基本的问题,但我在CodeSchool.com上学习了一个骨干课程,我仍然不知道从哪里开始。
这是我收集的代码:
var NewCollection = Backbone.Collection.extend({
//INITIALIZE
initialize: function(){
_.bindAll(this);
// Bind global events
global_event_hub.bind('refresh_collection', this.on_request_refresh_collection);
}
// On refresh collection event
on_request_refresh_collection: function(query_args){
// This is where I am lost. I do not know how to take the "query_args"
// and use them to query the server and refresh the collection <------
}
})
答案 0 :(得分:4)
简单的答案是你要为你的Backbone.Collection定义一个URL属性或函数,如下所示:
initialize: function() {
// Code
},
on_request_refresh_collection: function() {
// Code
},
url: 'myURL/whateverItIs'
OR
url: function() {
return 'moreComplex/' + whateverID + '/orWhatever/' + youWant;
}
在定义了URL函数之后,您只需要在该集合实例上运行fetch()
,它将使用您设置URL的任何内容。
编辑-------进行收集查询
因此,一旦设置了网址,您就可以使用原生的fetch()
方法轻松进行查询。
fetch()
采用名为data:{}
的选项,您可以在其中向服务器发送您的查询参数,如下所示:
userCollection.fetch({
data: {
queryTerms: arrayOfTerms[], // Or whatever you want to send
page: userCollection.page, // Pagination data
length: userCollection.length // How many per page data
// The above are all just examples. You can make up your own data.properties
},
success: function() {
},
error: function() {
}
});
然后在您的服务器端,您只需要确保获取您的请求的参数并瞧。