gpt4 book ai didi

javascript - Backbone.js 集合选项

转载 作者:IT王子 更新时间:2023-10-29 03:04:51 27 4
gpt4 key购买 nike

我使用 Backbone.js 编写了一个模型/ View /集合。我的收藏使用 fetch 方法从远程服务器加载模型。此集合所需的 url 需要一个 id,如:messages/{id}。但是我没有找到将选项传递给 Collection 的干净方法。

backbone.js View 通过在构造时传递它来接受选项:view([options]),但是集合在构造时需要一个模型列表:collection([models])。

向该集合传递参数/选项的“最干净”方式是什么?

缩短的代码:

var Messages = Backbone.Collection.extend({
model: Message,
url: 'http://url/messages/' + id
});

最佳答案

@Paul 的回答很好,但还值得注意的是 url属性可以是一个函数。在我看来(这只是意见,因为最终结果是一样的),如果在 initialize 中设置 id,代码会更清晰一些,如果更冗长的话。并在函数中引用它:

var Messages = Backbone.Collection.extend({
initialize: function(models, options) {
this.id = options.id;
},
url: function() {
return '/messages/' + this.id;
},
model: Message,
});

var collection = new Messages([], { id: 2 });
collection.fetch();

只是为了确保 - 你没有混淆 id这里有型号 id , 你是? @Paul 的回答和我上面的代码假设您有多个 Messages集合,每个都有自己的 id。如果API路径/messages/<id>实际上是指一个消息,而不是一组消息,那么你只需要设置url/messages/在 Collection 中,Backbone 会自动使用 /messages/<id>对于每个模型。

关于javascript - Backbone.js 集合选项,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8464417/

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