this.model.save({
success: function(model, response){
console.log('success');
},
error: function(){
console.log('error');
}
})
模型已正确发布到处理保存的服务器,但未触发成功回调。我是否需要从服务器发回一些东西?
答案 0 :(得分:123)
save的第一个参数是要保存在模型上的属性:
this.model.save( {att1 : "value"}, {success :handler1, error: handler2});
答案 1 :(得分:58)
对于某些未知的原因,上述方法都不适用于我。在我的情况下,api没有被击中。
但是稍后在搜索时,我碰到了this link,其中有些人尝试null
而不是{}
作为第一个参数。
this.model.save(null, {
success: function (model, response) {
console.log("success");
},
error: function (model, response) {
console.log("error");
}
});
所以,这对我有用。希望这对你也有帮助。
答案 2 :(得分:37)
您的服务器必须返回JSON对象。如果响应不是JSON对象,则不会触发回调。
如果为了成功,您的服务器不会返回JSON对象,请使用 dataType:“text”选项执行保存,如下所示:
this.model.save([],{
dataType:"text",
success:function() {},
error:function() {}
});
使用此选项,它不会等待响应中的JSON,而是等待文本,因此将启动回调。
答案 3 :(得分:11)
您可以使用下划线lib,因为骨干已经取决于此。请记住,save的第一个参数必须具有属性,或者您可以只传递{},以防您想要保存模型本身。
this.model.save({}, _.bind(function(model, response){
//Do whatever you want e.g.
this.collection.add(model)
}, this))
答案 4 :(得分:8)
所以我有点困惑 - 我还需要传递所有属性才能让我调用保存事件吗?如果我的模型很大...我不希望手动设置每个属性
我正在调用model.save并尝试执行以下操作:
this.model.save(
{
success: function (model, response) {
console.log('model saved');
}
});
好的只是回答我自己的问题,如果有人发现这篇文章,我做了以下工作:
this.model.save({ id: this.model.get('id') },
{
success: function (model, response) {
console.log("success");
},
error: function (model, response) {
console.log("error");
}
});
编辑:我出于某种原因无法回复你,但我可以编辑
但你不必设置id:this.model.get('id')
你可以传递一个空白对象,因为空白属性不会扩展属性,什么都不做:
this.model.save({}, {
success: function (model, response) {
console.log("success");
},
error: function (model, response) {
console.log("error");
}
});
答案 5 :(得分:4)
以下是我用于骨干模型保存的代码。
this.model.save(model,{
success:function(model){
console.log("Saved Successfully");
},
error:function(model){
console.log("Error");
}
});
干杯
Roy M J
答案 6 :(得分:1)
对于那些想要保存模型而不更新属性的人,您可以执行以下操作:
model.once("sync", function(model, response, options){
//
});
model.once("error", function(model, response, options){
//
});
model.save();
答案 7 :(得分:1)
在初始化函数中,将sync方法绑定到您定义的方法(onSaveSuccess)
initialize: function (options) {
this.model.on('sync', _.bind(this.onSaveSuccess, this));
},
onSaveSuccess: function() {
console.log('saved');
this.render();
},
这样,无论何时运行this.model.save(),如果同步成功,它都会将onSaveSuccess函数作为回调运行