渲染html模板后的骨干视图事件

时间:2014-02-26 09:21:18

标签: backbone.js backbone-views backbone-events

我希望在所有视图中呈现html后调用某个函数。所以,我想要一些在渲染骨干视图后引发的事件。是否存在任何现有事件或如何使用视图扩展创建自己的事件?

2 个答案:

答案 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..