2014-02-26 42 views
1

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

+0

可能重复的[Backbone.js event after view.render()完成后](http://stackoverflow.com/questions/9790361/backbone -js-事件后视图渲染-是成品) – Puigcerber

回答

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); 
}); 
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..