モデルが破棄されたときに backbone.js コレクションがモデルを削除するのを防ぐ方法はありますか?
それが起こるたびに、コレクションから「削除」トリガーイベントを受け取ります
collection.on("remove", this.handleRemove)
すでにいくつかの引数を渡そうとしましたが、何もしませんでした
model.destroy({silent: false, remove: false})
モデルが破棄されたときに backbone.js コレクションがモデルを削除するのを防ぐ方法はありますか?
それが起こるたびに、コレクションから「削除」トリガーイベントを受け取ります
collection.on("remove", this.handleRemove)
すでにいくつかの引数を渡そうとしましたが、何もしませんでした
model.destroy({silent: false, remove: false})
解決策は、バックボーン モデルの破棄機能をオーバーライドすることです。成功とコールバック戦略を使用して抽象モデルでこれを作成しました。
パラメータ「data」は、元のパラメータ「resp」に対応します。
destroy: function(successCallback, errorCallback)
{
var options = { wait: true };
var model = this;
successCallback = successCallback || function() {};
errorCallback = errorCallback || function() {};
var destroy = function()
{
model.trigger('destroy', model, model.collection, options);
};
options.success = function(data)
{
if ('SUCCESS' === data.responseCode)
{
if (options.wait || model.isNew())
destroy();
successCallback(data);
if (!model.isNew())
model.trigger('sync', model, data, options);
}
else
{
errorCallback(data);
}
};
if (this.isNew())
{
options.success();
return false;
}
var xhr = this.sync('delete', this, options);
if (!options.wait)
destroy();
return xhr;
}