I've a Backbone view where the className is set dynamically with a function:
app.Views.ItemRequestView = Backbone.View.extend({
tagName : 'tr',
className : function(){
var classRow = '';
if(this.model.getState() == app.Models.Request.status.wait.key) {
classRow = app.Models.Request.status.wait.color + ' bolder';
}
else if(this.model.getState() == app.Models.Request.status.confirm.key){
classRow = app.Models.Request.status.confirm.color + ' bolder';
}
return classRow;
},
When I update the model of the view I trigger a change event who render the view. The problem is that the className is not recalculate with the render... How can I recalculate the className when I render the view ?
Anyone have an idea ? Thanks
You will have to update your
class
manually after therender
method. Backbone initializes theclassName
of the element of your View only once time during the_ensureElement
method:If you take a look it has a check in case of the element already exists. Anyway, you can do that manually in your
render
method: