gpt4 book ai didi

javascript - 是否可以使用对象 ID 而不是对象来初始化 Backbone 集合?

转载 作者:可可西里 更新时间:2023-11-01 02:54:49 25 4
gpt4 key购买 nike

我有一个 Backbone.js 集合,我有一个模型 ID 数组,我想填充它。我知道我可以一个一个地获取这些对象,构建一个对象数组并将它们作为数组传递给 Collection 的构造函数。

我想做的是将对象 ID 数组作为初始数据传递到构造函数中,并让 Collection 获取它们,可能是按照 this 进行的。 .

可行吗?

最佳答案

当您在 Backbone.Collection 上调用“fetch”时,它会依次调用 Backbone.sync,默认情况下它只向集合询问要使用的 url。

因此,如果您的服务器响应:

/models/batch/?ids=1,2,3,4

你可以这样做:

var MyCollection = Backbone.Collection.extend({

model: Model,

url: '/models',

initialize: function(models, options) {
ids = options.ids || [];
if (ids.length > 0) {
this.fetchByIds(ids);
}
},

fetchByIds: function(ids) {
// Save a reference to the existing url
var baseUrl = this.url;

// Assign our batch url to the 'url' property and call the server
this.url += '/?ids=' + ids.join(',');
this.fetch();

// Restore the 'url' property
this.url = baseUrl;
}
});

然后像这样使用它:

var coll = new MyCollection({}, {ids: [1, 2, 3, 4]});

您必须在选项参数中传递 id,因为 Backbone.Collection 构造函数在调用“初始化”函数之前设置在第一个参数中传递的模型。

理论上,这应该可行(阅读:完全未尝试过)。

关于javascript - 是否可以使用对象 ID 而不是对象来初始化 Backbone 集合?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6931257/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com