3

我有一个这样的骨干集合:

var ThreadCollection = Backbone.Collection.extend({
  url: '/api/rest/thread/getList'
});
var myCollection = new ThreadCollection();

然后我使用数据对象从服务器获取它以附加查询参数(所以在这种情况下它出现'/api/rest/thread/getList?userId=487343')

myCollection.fetch({
  data: {
    userId: 487343
  }
})

我可能想使用其他参数来代替 userId(groupId、orgId 等),但理想情况下,我会在初始化时定义数据参数,然后在不指定的情况下运行 fetch()。像这样的东西:

var myCollection = new ThreadCollection({
  data: {
    userId: 487343
  }
});

myCollection.fetch()

但它不起作用。有谁知道是否有办法做到这一点?谢谢!

4

1 回答 1

6

fetch一种方法是在您的集合上定义一个自定义方法,该方法调用fetch具有一些可覆盖默认值的超级方法:

var ThreadCollection = Backbone.Collection.extend({
    url: '/api/rest/thread/getList',
    fetch: function(options) {
        return Backbone.Collection.prototype.fetch.call(this, _.extend({
            data: {
                userId: 48743
            }
        }, options));
    }
});

var myCollection = new ThreadCollection();

myCollection.fetch();
于 2013-02-21T18:51:52.940 回答