Javascript Backbone.js`isNew`在`model.save()之后不返回`false`事件`
如果查看Backbone.js文档,isNew的描述如下: 此模型是否已保存到服务器?如果模型还没有id,则认为它是新的 但无论我做什么,isNew总是会回到现实 正如您在下面看到的,我创建了一个新模型,它甚至有一个cid,将其添加到集合中,对集合运行一个fetch,尽管如此,isNew仍然为模型返回true。save函数正在运行一个restfulapi,记录正在成功保存到DB中Javascript Backbone.js`isNew`在`model.save()之后不返回`false`事件`,javascript,backbone.js,Javascript,Backbone.js,如果查看Backbone.js文档,isNew的描述如下: 此模型是否已保存到服务器?如果模型还没有id,则认为它是新的 但无论我做什么,isNew总是会回到现实 正如您在下面看到的,我创建了一个新模型,它甚至有一个cid,将其添加到集合中,对集合运行一个fetch,尽管如此,isNew仍然为模型返回true。save函数正在运行一个restfulapi,记录正在成功保存到DB中 a = new TodoModel({title: 'hi there'}); > s {cid: "c14
a = new TodoModel({title: 'hi there'});
> s {cid: "c14", attributes: Object, _changing: false, _previousAttributes: Object, changed: Object…}
a.save();
> Object {readyState: 1, getResponseHeader: function, getAllResponseHeaders: function, setRequestHeader: function, overrideMimeType: function…}
b = new TodoCollection();
> s {length: 0, models: Array[0], _byId: Object, constructor: function, model: function…}
b.add(a);
> s {cid: "c14", attributes: Object, _changing: false, _previousAttributes: Object, changed: Object…}
b.fetch();
> Object {readyState: 1, getResponseHeader: function, getAllResponseHeaders: function, setRequestHeader: function, overrideMimeType: function…}
a.isNew();
> true
那么,如何让isNew返回false呢?将您自己的isNew添加到您的模型中。也许您希望cid成为使其成为新的东西,或者您在保存它时将自己的标志设置为false。这是我过去所做的
isNew: function () {
return this.id > 0 ? false : true;
}
是否从服务器返回唯一的ID?它是决定默认情况下是否为“新”的ID。