Backbone.js 主干模型isNew==true,即使已分配ID

Backbone.js 主干模型isNew==true,即使已分配ID,backbone.js,Backbone.js,我有一个主干模型: var User = Backbone.Model.extend({ idAttribute: '_id', url: '/api/user', defaults: { username: '' }, initialize: function () { console.log(this, this.isNew()); } }); 然后初始化模型并获取实例: var user = new User(); user.fetch

我有一个主干模型:

var User = Backbone.Model.extend({
  idAttribute: '_id',

  url: '/api/user',

  defaults:
    { username: ''
    },

  initialize: function () {
    console.log(this, this.isNew());
  }
});
然后初始化模型并获取实例:

var user = new User();

user.fetch();

这很有效。如果我检查
user
,则有一个
id
属性。它存在于服务器上。但是,由于某种原因,
user.isNew()
报告为true-即使它有一个
id
属性集(属性和属性)。我需要在服务器上更新此模型,但主干网坚持发送
POST
请求,当我需要
PUT
时,…

在提取完成之前初始化运行。isNew值将更改,直到服务器应答到达。侦听模型上的更改事件,或将回调传递给fetch调用

var user = new User();

user.fetch({success : function(){
  console.log( user.isNew() );
}});

在提取完成之前初始化运行。isNew值将更改,直到服务器应答到达。侦听模型上的更改事件,或将回调传递给fetch调用

var user = new User();

user.fetch({success : function(){
  console.log( user.isNew() );
}});

这就是为什么!因此,在我稍后保存到应用程序模型的地方,我有
console.log
'd
isNew
,它返回false。但它仍然试图发出POST请求而不是PUT…知道为什么吗?这是另一个问题。可以将其他属性设置为主键或类似的内容。您是否可以用您的模型创建另一个问题并保存用例,粘贴示例代码,这样我们就可以验证其他问题了。如果IsNeX===false,应该做一个更新(更新),但是好像你中间有东西被破坏了。这就是为什么!因此,在我稍后保存到应用程序模型的地方,我有
console.log
'd
isNew
,它返回false。但它仍然试图发出POST请求而不是PUT…知道为什么吗?这是另一个问题。可以将其他属性设置为主键或类似的内容。您是否可以用您的模型创建另一个问题并保存用例,粘贴示例代码,这样我们就可以验证其他问题了。如果IsNeX=== FALSE应该做一个更新(更新),但是看起来你中间有一些东西被破坏了。你没有给模型分配ID,这就是原因。请参阅我对以下问题的答复,您没有为模型分配ID,这就是原因。见我对你以下问题的答复