backbone.js在视图“插入”页面时执行view方法

时间:2012-05-04 00:03:14

标签: backbone.js

我不知道如何实现这一点并且觉得从路由器调用“view.executeSomeUIaction()”并不是一个好主意。感谢帮助。

3 个答案:

答案 0 :(得分:0)

当视图的el添加到DOM时,您是否希望在视图上执行某些代码?

我使用Region对象构建了我的Backbone.Marionette框架,我写了一篇博文,在这里:http://lostechies.com/derickbailey/2011/12/12/composite-js-apps-regions-and-region-managers/

在这篇文章中请注意,我正在检查onShow方法,然后调用它(如果存在)。这是你想要注意的一点。如果将此方法添加到视图中,然后使用区域对象来显示视图,则将调用此方法,您可以在此时执行任何操作。

我的Marionette框架内置了Region对象,或者您可以将其复制到该博客帖子中:https://github.com/derickbailey/backbone.marionette

答案 1 :(得分:0)

如果您想要的是在将视图加载到页面中时执行某些操作,我希望

var contactsView = Backbone.View.extend({
    id: "contactView",
    tagName: "div",
    className: "contacts-container",
    render:function(){
     //render your view
     //now attach the events that don't bubble
     $(this.el).on("load",this.added);
    },
    events: {},
    added: function () {
        alert("View had been added");
    }
});

JsFiddle与

一起玩

http://jsfiddle.net/qy2Ly/

校正的

http://jsfiddle.net/zRSg3/3/

答案 2 :(得分:0)

mu建议的

The approach太短,是使用setTimeout,超时为0.这在大多数情况下适合我。