Backbone.js模型:用于创建和保存的不同URL

时间:2012-02-23 20:54:25

标签: javascript backbone.js

我的模型现在看起来如下:

window.List = Backbone.Model.extend({
    title: null,
    idAttribute : '_id',
    url : function() {
      return "/list/" + this.id + ".json";
    }
});

我正在调整我的api以不同的方式做出反应,以便对格式做出更多回应。这对于获取现有记录非常有用,但是当它尝试创建一个新记录时,它显然会尝试发布到'/list/undefined.json'。有没有一种方法可以判断模型是否是新的并且是第一次保存,或者更好的想法是查看请求体以确定它是否为text / json?

3 个答案:

答案 0 :(得分:5)

您的Backbone.Model实例具有函数isNew()。如果是这样,则表示它从未保存到服务器。

答案 1 :(得分:3)

正如您自己所说,如果模型是新的,idundefined(不应该是_id吗?)。

因此,您可以检查是否是这种情况 - 如果尚未设置ID属性,则模型是新鲜的。

答案 2 :(得分:2)

检查模型是否有id。如果它确实保存它,否则创建它。

url : function() {
  if (this.isNew()) {
    return "/list.json";
  } else {
    return "/list/" + this.id + ".json";
  }
}