gpt4 book ai didi

backbone.js - 使用collection.url的BackboneJS model.url

转载 作者:行者123 更新时间:2023-12-04 03:52:22 24 4
gpt4 key购买 nike

根据我的理解,除非模型指定了urlRoot,否则Backbone JS模型的默认行为是返回Collection的URL。我似乎无法使行为正常。

从文档中:

model.url() ... Generates URLs of the form: "[collection.url]/[id]" by default, but you may override by specifying an explicit urlRoot if the model's collection shouldn't be taken into account.



这分别是我的收藏和模特:
var MyCollection = Backbone.Collection.extend({
model: Model,
initialize: function(options){
this.options = options || {};
},
url: function(){
return "/theurl/" + this.options.param;
}
});
return MyCollection;

...
var MyModel = Backbone.Model.extend({
urlRoot: '/theurl',
initialize: function() {
}
});
return MyModel;

当模型加载时没有集合时,它可以很好地工作并提交给 /theurl,但是当模型加载到集合中时,所有方法都将提交给 /theurl/param/

如果我正确地理解了文档,那么Model的 urlRoot应该覆盖此行为;即使这样,模型网址也应该是 /theurl/param/{MODEL-ID}

关于我所缺少/误解的任何想法?

...

PS:集合中的 model: Model通过RequireJS引入

最佳答案

即使您指定了urlRoot,它也将始终使用集合的url。

使用urlRoot的原因是,您可以在替代中使用它,或者如果模型恰巧不在集合中(例如,它可能已被删除,但在客户端上仍然存在)。

因此,如果要fetchsave模型并覆盖由集合生成的url,则需要将urlRoot显式地传递给这些方法作为选项。例如:

yourModel.save({ url: yourModel.urlRoot });

我同意文档令人困惑,这也让我最近也感到困惑。

关于backbone.js - 使用collection.url的BackboneJS model.url,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17461264/

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