1

我有一个主干模型:

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属性集(属性和属性)。我需要在服务器上更新这个模型,但是 Backbone 坚持在POST我需要的时候发送请求PUT……</p>

4

1 回答 1

1

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

var user = new User();

user.fetch({success : function(){
  console.log( user.isNew() );
}});
于 2012-07-20T21:01:01.000 回答