我希望在所有视图中呈现html后调用某个函数。所以,我想要一些在渲染骨干视图后引发的事件。是否存在任何现有事件或如何使用视图扩展创建自己的事件?
答案 0 :(得分:3)
您应该可以执行类似
的操作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 !");
}
});
然后,对事件作出反应:
var view = new MyView(...);
view.listenTo(view, "render:after", function(msg){
alert(msg);
});
答案 1 :(得分:2)
你可以这样做:
var render = Backbone.View.prototype.render;
Backbone.View.prototype.render = function() {
var rendered = render();
this.trigger("render", this);
return rendered;
}
因此,无论何时呈现视图,都将触发渲染事件。每次延长Backbone.View
时都不需要添加this.trigger("render..