我有一个Backbone集合(实际上是一个Thorax集合),我有一个函数文件来执行获取。
fetchAllOfferedSchoolQualifications : function () {
this.fetch({
url : this.urlRoot(),
type : 'GET'
});
},
让我们说这个获取去了url'localhost:80 / myapp / qalifications
提取完成后我从该获取的集合中获取模型,将某些属性更改为model.save()
。模型进行PUT
调用。但问题是使用从集合继承的相同URL。生成骨干网的逻辑如下:
url: function() {
var base = _.result(this, 'urlRoot') || _.result(this.collection, 'url') || urlError();
if (this.isNew()) return base;
return base + (base.charAt(base.length - 1) === '/' ? '' : '/') + encodeURIComponent(this.id);
},
这是创建正确网址的地方。在骨干同步中,它检查URL如下
// Ensure that we have a URL.
if (!options.url) {
params.url = _.result(model, 'url') || urlError();
}
由于模型具有集合获取的URL,因此它使用该URL作为PUT。事件以为我将模型的网址核对如下。
model.url = undefined;
由于url不可用,因此检查模型中是否存在函数url
。如果不是,则会抛出错误。
所以,
有人可以解释这种情况吗?