在SQL中,您将使用UPDATE命令更新行,如何在SQL中更新模型,其中的属性已经从另一个JSON对象更改。
我想以这样的方式执行此操作,以便它只更改已更改的属性而不是整个模型,我已经看到了model.changedAttributes()命令,但不知道如何使用它。 / p>
由于
编辑:
我试过这个:
//code to update model
usersCollection.fetch({
success: function() {
var getModel = usersCollection.where(checkIDJSON);
//update that partcular attribute
getModel.set('interest', 'rolling stones');
console.log("Users:" + usersCollection.toJSON());
}, error: function() {
// something is wrong..
}
});
返回错误,“未定义不是函数”
答案 0 :(得分:0)
据我所知,您希望使用RESTful服务将数据从模型保存到服务器,并且不希望发送模型的所有数据,而只发送那些仅已更改的属性。为此,您应该使用patch
方法:
model.save(attrs, {patch: true})
在这种情况下,您只能发送attrs
或
model.save({patch: true})
只是已更改的属性(在这种情况下attrs
将为model.changedAttributes()
)
来自主干文档:
相反,如果您只想将更改的属性发送到服务器,请致电model.save(attrs, {patch: true})
。您只需传入属性即可向服务器收到HTTP PATCH请求。
答案 1 :(得分:0)
我现在正在研究这个问题。
您的逻辑从文档中看起来是正确的。在我getModel.set('interest', 'rolling stones');
之后
getModel.save(); //saves the model to the database (or whatever you have setup)
userCollection.reset(); // reloads the collection from the database (or whatever you have setup.
如果没有使用Backbone.sync方法,那么为了使骨干网能够正常工作,我建议在你的课程中覆盖这些方法。