diff --git a/backbone.js b/backbone.js index ecc09a1a..89423038 100644 --- a/backbone.js +++ b/backbone.js @@ -980,9 +980,9 @@ if (!wait) this.add(model, options); var collection = this; var success = options.success; - options.success = function(model, resp, callbackOptions) { - if (wait) collection.add(model, callbackOptions); - if (success) success.call(callbackOptions.context, model, resp, callbackOptions); + options.success = function(model, resp, callbackOpts) { + if (wait) collection.add(model, callbackOpts); + if (success) success.call(callbackOpts.context, model, resp, callbackOpts); }; model.save(null, options); return model; diff --git a/test/collection.js b/test/collection.js index ad0b5277..b5ca61cc 100644 --- a/test/collection.js +++ b/test/collection.js @@ -531,24 +531,25 @@ }); test("create will pass extra options to success callback", 1, function () { - var SpecialSyncModel = Backbone.Model.extend({ + var Model = Backbone.Model.extend({ sync: function (method, model, options) { - _.extend(options, { specialSync: true }); + _.extend(options, {specialSync: true}); return Backbone.Model.prototype.sync.call(this, method, model, options); } }); - var SpecialSyncCollection = Backbone.Collection.extend({ - model: SpecialSyncModel, + + var Collection = Backbone.Collection.extend({ + model: Model, url: '/test' }); - var collection = new SpecialSyncCollection(); + var collection = new Collection; - var onSuccess = function (model, response, options) { + var success = function (model, response, options) { ok(options.specialSync, "Options were passed correctly to callback"); }; - collection.create({}, { success: onSuccess }); + collection.create({}, {success: success}); this.ajaxSettings.success(); });