Pass "this" to a bootbox callback with Backbone
backbone.js, bootbox, javascript
Solution
As underscore is a dependency of backbone you could use its `_.bind` feature:
_.bind(function, object, [*arguments])
Bind a function to an object, meaning that whenever the function is called, the value of this will be the object. Optionally, pass arguments to the function to pre-fill them, also known as partial application.
In your case this could look like this:
completeProcess : function(event) {
event.preventDefault();
this.model.set({completed: '1'});
bootbox.confirm("Confirm?", _.bind(this.confirm, this));
}
Problem
I'm using Backbone and bootbox. This is my code inside a view: ``` confirm : function(result) { if (result === true) { var that = this; this.model.set({completed: '1'}); // Exception here this.model.save( null, { success: function (model, response) { Backbone.history.navigate("index", true); }, error: function(model, response) { that.model.set({completed: '0'}); var responseObj = $.parseJSON(response.responseText); bootbox.alert(responseObj.message); } }); } }, completeProcess : function(event) { event.preventDefault(); this.model.set({completed: '1'}); bootbox.confirm("Confirm?", this.confirm ); } ``` I'm getting this error: Uncaught TypeError: Cannot call method 'set' of undefined Is there a way to pass the reference from the view?