我有一个Backbone模型:
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()
报告为真 - 即使它具有id
属性集(属性和属性)。我需要在服务器上更新此模型,但Backbone坚持发送POST
请求,当我需要PUT
时...
答案 0 :(得分:1)
在获取完成之前初始化运行。 isNew值将更改,直到服务器答案到达。侦听模型上的change事件或将回调传递给fetch调用。
var user = new User();
user.fetch({success : function(){
console.log( user.isNew() );
}});