Backbone模型继承了集合url

时间:2014-08-07 07:07:12

标签: javascript url backbone.js thorax.js

我有一个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。如果不是,则会抛出错误。

所以,

  1. 模型继承集合url。这是正确的
  2. 如果骨干不遵循RESTFUL网址模式``资格[id]
  3. 有人可以解释这种情况吗?

0 个答案:

没有答案