3

我需要使用骨干集合查询数据库。我不知道该怎么做。我假设我需要在某处设置一个 url,但我不知道那在哪里。我很抱歉这一定是一个非常基本的问题,但我在 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 <------

    } 

})
4

1 回答 1

4

简单的答案是您可以像这样为 Backbone.Collection 定义一个 URL 属性或函数:

initialize: function() {
    // Code
},
on_request_refresh_collection: function() {
    // Code
},
url: 'myURL/whateverItIs'

或者

url: function() {
    return 'moreComplex/' + whateverID + '/orWhatever/' + youWant;
}

定义 URL 函数后,您所要做的就是fetch()在该集合实例上运行 a ,它将使用您将 URL 设置为的任何内容。

编辑 -------- 进行收藏查询

fetch()因此,一旦您设置了 URL,您就可以使用本机方法轻松进行查询。

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() {
    }
});

然后在您的服务器端,您只想确保获取您的请求的参数,瞧。

于 2012-08-24T19:44:30.457 回答