Fix #1365 - Destroy: new models execute success callback.

This commit is contained in:
Brad Dunbar
2012-06-16 11:33:05 -04:00
parent 54ec530eea
commit b6b9ec72ff
2 changed files with 16 additions and 9 deletions

View File

@@ -397,24 +397,24 @@
var model = this;
var success = options.success;
var triggerDestroy = function() {
var destroy = function() {
model.trigger('destroy', model, model.collection, options);
};
options.success = function(resp) {
if (options.wait || model.isNew()) destroy();
if (success) success(model, resp, options);
if (!model.isNew()) model.trigger('sync', model, resp, options);
};
if (this.isNew()) {
triggerDestroy();
options.success();
return false;
}
options.success = function(resp) {
if (options.wait) triggerDestroy();
if (success) success(model, resp, options);
model.trigger('sync', model, resp, options);
};
options.error = Backbone.wrapError(options.error, model, options);
var xhr = this.sync('delete', this, options);
if (!options.wait) triggerDestroy();
if (!options.wait) destroy();
return xhr;
},

View File

@@ -840,4 +840,11 @@ $(document).ready(function() {
model.destroy();
});
test("#1365 - Destroy: New models execute success callback.", 2, function() {
new Backbone.Model()
.on('sync', function() { ok(false); })
.on('destroy', function(){ ok(true); })
.destroy({ success: function(){ ok(true); }});
});
});