我的模型现在看起来如下:
window.List = Backbone.Model.extend({
title: null,
idAttribute : '_id',
url : function() {
return "/list/" + this.id + ".json";
}
});
我正在调整我的api以不同的方式做出反应,以便对格式做出更多回应。这对于获取现有记录非常有用,但是当它尝试创建一个新记录时,它显然会尝试发布到'/list/undefined.json'。有没有一种方法可以判断模型是否是新的并且是第一次保存,或者更好的想法是查看请求体以确定它是否为text / json?
答案 0 :(得分:5)
您的Backbone.Model实例具有函数isNew()
。如果是这样,则表示它从未保存到服务器。
答案 1 :(得分:3)
正如您自己所说,如果模型是新的,id
是undefined
(不应该是_id
吗?)。
因此,您可以检查是否是这种情况 - 如果尚未设置ID属性,则模型是新鲜的。
答案 2 :(得分:2)
检查模型是否有id
。如果它确实保存它,否则创建它。
url : function() {
if (this.isNew()) {
return "/list.json";
} else {
return "/list/" + this.id + ".json";
}
}