Backbone.js查看删除和解除绑定

Joe*_*Joe 5 javascript backbone.js

当我的页面打开时,我调用该集合并填充视图:

var pagColl = new pgCollection(e.models); 
var pagView = new pgView({collection: pagColl});
Run Code Online (Sandbox Code Playgroud)

另外(通过Datepicker),我希望用不同的模型填充相同的集合并再次实例化视图.

我遇到的问题是如何在我打开新原件之前关闭原件pagView并清空pagColl,因为这个"鬼视图"给我带来了问题.上面提到的变量是局部变量?难道是我需要建立一个全球性的 pagCollreset()这个?

San*_*der 13

实际上有很多关于这个话题的讨论,骨干对你没有任何帮助,你必须自己做,这是你需要照顾的:

  1. 删除视图(此委托给jQuery,jquery将其从DOM中删除)

    // to be called from inside your view... otherwise its  `view.remove();`
    this.remove();
    
    Run Code Online (Sandbox Code Playgroud)

    这将从DOM中删除视图并删除绑定到它的所有DOM事件.

  2. 删除所有骨干事件

    // to be called from inside the view... otherwise it's  `view.unbind();`
    this.unbind();
    
    Run Code Online (Sandbox Code Playgroud)

    如果视图中有某个事件(按钮)委托给调用的函数,则会删除绑定到视图的所有事件 this.trigger('myCustomEvent', params);

如果你想了解如何实现一个系统,我建议你阅读Derrick Bailey关于僵尸视图的博文:http://lostechies.com/derickbailey/2011/09/15/zombies-run-managing-page-transitions- in-backbone-apps /.

另外一个选项

另一个选择是重用当前视图,并让它重新渲染或追加视图中的某些项目,绑定到集合的reset事件

  • ``obj.unbind()``是``obj.off()``的别名. (2认同)