gpt4 book ai didi

javascript - Backbone.js View 移除和解除绑定(bind)

转载 作者:数据小太阳 更新时间:2023-10-29 05:47:05 31 4
gpt4 key购买 nike

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

var pagColl = new pgCollection(e.models); 
var pagView = new pgView({collection: pagColl});

另外(通过日期选择器),我希望用不同的模型填充同一个集合并再次实例化 View 。

我遇到的问题是如何在打开新的之前关闭原始的 pagView 并清空 pagColl,因为这个“幽灵 View ”给我带来了问题.上面提到的变量是局部变量?是不是我需要创建一个全局的 pagCollreset() this?

最佳答案

其实已经有很多关于这个话题的讨论了,backbone 对你没有任何作用,你必须自己做,这是你必须注意的:

  1. 删除 View (委托(delegate)给 jQuery,jquery 将其从 DOM 中删除)

    // to be called from inside your view... otherwise its  `view.remove();`
    this.remove();

    这将从 DOM 中删除 View 并删除绑定(bind)到它的所有 DOM 事件。

  2. 删除所有主干事件

    // to be called from inside the view... otherwise it's  `view.unbind();`
    this.unbind();

    这将删除绑定(bind)到 View 的所有事件,如果您的 View (一个按钮)中有某个事件委托(delegate)给调用 this.trigger('myCustomEvent', params); 的函数

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

另一种选择

另一种选择是重用您当前的 View ,并让它重新呈现或附加 View 中的某些项目,绑定(bind)到集合的 reset。事件

关于javascript - Backbone.js View 移除和解除绑定(bind),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9080763/

31 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com