I want to call some function after html is rendered in all view. So, I want some event which is raised after backbone view is rendered. Is there any existing event or how do I make my own event using view extending?
Asked
Active
Viewed 1,519 times
1
-
possible duplicate of [Backbone.js event after view.render() is finished](http://stackoverflow.com/questions/9790361/backbone-js-event-after-view-render-is-finished) – Puigcerber Feb 26 '14 at 09:26
2 Answers
3
You should be able to do something like
var MyView = Backbone.View.extend(Backbone.Events, {
// usual code (template, etc.)
render: function(){
// code to render view
// trigger event
this.trigger("render:after", "View rendered !");
}
});
Then, to react to the event:
var view = new MyView(...);
view.listenTo(view, "render:after", function(msg){
alert(msg);
});

Kyle Needham
- 3,379
- 2
- 24
- 38

David Sulc
- 25,946
- 3
- 52
- 54
2
You can do like this :
var render = Backbone.View.prototype.render;
Backbone.View.prototype.render = function() {
var rendered = render();
this.trigger("render", this);
return rendered;
}
So whenever a view is rendered the render event will be triggered. And you don't need to everytime you extend the Backbone.View
to add the this.trigger("render..

Rida BENHAMMANE
- 4,111
- 1
- 14
- 25