如何在Backbone.js中为同一视图创建新实例时销毁先前创建的视图实例

时间:2014-11-20 09:23:05

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

我在我的项目中使用Backbone.js。 我在另一个视图的渲染函数中创建了一个新的视图实例

render: function (data) {
    var newView = new View();
}

需要一次又一次地调用相同的渲染功能而不刷新页面。如果我这样做,它会创建多个实例。 如何在创建新实例之前销毁/隐藏先前创建的实例?

2 个答案:

答案 0 :(得分:1)

存储对您的视图的引用,然后在使用view.remove / view.undelegateEvents /自定义代码创建新实例时将其销毁,以完全分离它:

render: function() {
    if (this.subview)
        this.subview.remove();

    this.subview = new View();
}

答案 1 :(得分:0)

以下是一种简单的方法。我已多次使用它了。

假设您声明了一个全局变量(比如'globalHandle

render: function (data) {
    if(globalHandle.newView)
      return globalHandle.newView;

    var newView = new View();
    globalHandle.newView = newView;
}

此外,您可以从应用程序的任何部分引用globalHandle.newView来检查它是否存在。