如何删除旧的骨干视图

时间:2015-12-11 04:30:10

标签: javascript events backbone.js views

我在互联网上搜索了触发破坏旧视图的方法。 有这样的功能,但是,我不知道如何触发它们。理想情况下,有一种方法可以在关闭视图时触发销毁。 我找不到如何触发该特定事件的方法。

2 个答案:

答案 0 :(得分:2)

您应该按照文档http://backbonejs.org/#View-remove

中的说明调用view.remove()来触发其销毁

例如,如果你有:

var myView = Backbone.View.extend({
    initialize: function() {
        ...
    },

    render: function() {
        ...
    }
});

如果您引用myView.remove()可用,则可以稍后致电myView

如果使用listenTo(推荐)方法而不是on侦听器,此方法还应删除与视图关联的所有事件侦听器。您还可以添加view.off()以确保删除事件。

此外,您需要为视图添加一种方法来侦听close事件,以便您可以调用remove和off方法。您应该参考12

答案 1 :(得分:0)

这篇古老而精彩的文章by Derick Bailey在解释问题以及如何解决问题方面做得很好。正如Monica正确地建议这依赖于view.remove(),但您可以更新路由器以破坏现有视图 - 尝试类似于

的东西
if (currentView) { 
  currentView.remove();
  currentView = newView();
}