【问题标题】:How to destroy previously created view instance while creating the new instance for the same view in Backbone.js如何在 Backbone.js 中为同一视图创建新实例时销毁先前创建的视图实例
【发布时间】:2014-11-20 09:23:05
【问题描述】:

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

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

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

【问题讨论】:

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


    【解决方案1】:

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

    render: function() {
        if (this.subview)
            this.subview.remove();
    
        this.subview = new View();
    }
    

    【讨论】:

      【解决方案2】:

      下面是一个简单的方法。我已经用过很多次了。

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

      render: function (data) {
          if(globalHandle.newView)
            return globalHandle.newView;
      
          var newView = new View();
          globalHandle.newView = newView;
      }
      

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

      【讨论】:

        猜你喜欢
        • 2012-01-12
        • 1970-01-01
        • 2018-10-04
        • 2019-07-15
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多