Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/backbone.js/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Backbone.js 设置主干集合的默认选项_Backbone.js_Backbone.js Collections - Fatal编程技术网

Backbone.js 设置主干集合的默认选项

Backbone.js 设置主干集合的默认选项,backbone.js,backbone.js-collections,Backbone.js,Backbone.js Collections,我有这样一个骨干收藏: var ThreadCollection = Backbone.Collection.extend({ url: '/api/rest/thread/getList' }); var myCollection = new ThreadCollection(); 然后我使用数据对象从服务器获取它以附加查询参数(因此在本例中,它显示为“/api/rest/thread/getList?userId=487343”) 我可能希望使用其他参数来代替userId(groupI

我有这样一个骨干收藏:

var ThreadCollection = Backbone.Collection.extend({
  url: '/api/rest/thread/getList'
});
var myCollection = new ThreadCollection();
然后我使用数据对象从服务器获取它以附加查询参数(因此在本例中,它显示为“/api/rest/thread/getList?userId=487343”)

我可能希望使用其他参数来代替userId(groupId、orgId等),但我最好在初始化时定义数据参数,从那时起就可以运行fetch(),而无需指定。大概是这样的:

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

myCollection.fetch()

但它不起作用。有人知道有没有办法做到这一点吗?谢谢

一种方法是在集合上定义一个自定义的
fetch
方法,该方法使用一些可覆盖的默认值调用super
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();

谢谢这正是我所想的,效果很好!
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();