this.model.save({
success: function(model, response){
console.log('success');
},
error: function(){
console.log('error');
}
})
モデルは保存を処理するサーバーに正しく送信されますが、成功コールバックは発生しません。サーバーから何かを送り返す必要がありますか?
this.model.save({
success: function(model, response){
console.log('success');
},
error: function(){
console.log('error');
}
})
モデルは保存を処理するサーバーに正しく送信されますが、成功コールバックは発生しません。サーバーから何かを送り返す必要がありますか?
回答:
saveの最初の引数は、モデルに保存する属性です:
this.model.save( {att1 : "value"}, {success :handler1, error: handler2});
いくつかのために、未知の理由で、上記の方法のどれも私のために働いていません。私の場合、APIのみがヒットしませんでした。
しかし、後でこれを検索しているときに、最初のパラメーターとしてではなく誰かが試したこのリンクにぶつかりました。null
{}
this.model.save(null, {
success: function (model, response) {
console.log("success");
},
error: function (model, response) {
console.log("error");
}
});
これでうまくいきました。これもお役に立てば幸いです。
サーバーはJSONオブジェクトを返す必要があります。応答がJSONオブジェクトでない場合、コールバックは発生しません。
成功してもサーバーがJSONオブジェクトを返さない場合は、次のようにdataType: "text"オプションを指定して保存します。
this.model.save([],{
dataType:"text",
success:function() {},
error:function() {}
});
このオプションを使用すると、応答でJSONではなくテキストを待機するため、コールバックが起動します。
バックボーンはすでにこれに依存しているため、次のようにアンダースコアlibを使用できます。saveの最初の引数は属性を持つ必要があるか、モデル自体を保存する場合は{}を渡すだけでよいことに注意してください。
this.model.save({}, _.bind(function(model, response){
//Do whatever you want e.g.
this.collection.add(model)
}, this))
少し混乱しています-保存イベントを呼び出すためにすべての属性を渡す必要がありますか?モデルが大きい場合はどうなりますか。すべてのプロパティを手動で設定したくない
imは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");
}
});
以下は、バックボーンモデルの保存に使用しているコードです。
this.model.save(model,{
success:function(model){
console.log("Saved Successfully");
},
error:function(model){
console.log("Error");
}
});
乾杯
ロイMJ
model
をthis.model
.. model
be に渡すのはややattributes
this.model
model.set(model.toJSON()); model.save()
です。モデルに設定されているものにモデルを設定する理由はありません。保存時にモデルをそれ自体に渡すことは冗長の縮図です。
関数を初期化するときに、syncメソッドを定義したメソッドにバインドします(onSaveSuccess)。
initialize: function (options) {
this.model.on('sync', _.bind(this.onSaveSuccess, this));
},
onSaveSuccess: function() {
console.log('saved');
this.render();
},
これにより、this.model.save()を実行するたびに、同期が成功した場合にコールバックとしてonSaveSuccess関数が実行されます。