Backbone:检测视图删除后的时刻

时间:2015-07-23 19:58:45

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

从另一个对象扩展的Backbone View后,检测片刻的最佳方法是什么?

JsFiddle补充道: http://jsfiddle.net/simmoniz/M5J8Q/1917/ 如何在不改变视图的情况下使#32行正常工作......

Thanks in Advance

3 个答案:

答案 0 :(得分:0)

查看生命周期管理是骨干核心缺少的重要事项之一。

所有非平凡的应用程序最终都需要解决此问题。您既可以自己动手,也可以使用牵线木偶或卓别林等。

基本上,骨干网没有视图破坏或处理的概念。听众应该被解除绑定的时间点。这是主干应用程序中最大的内存泄漏源。

答案 1 :(得分:0)

我终于想出了一个有效的解决方案。由于添加的元素是Backbone视图(简单或扩展),因此它具有删除功能。此解决方案将删除功能替换为新的"删除"执行相同操作但触发"删除"之前的事件。听众现在可以抓住它。效果很好:

var ev = new $.Event('remove'),
    orig = $.fn.remove;
view.remove = function() {
    $(this).trigger(ev);
    return orig.apply(this, arguments);
}

然后我们可以听取"删除"像我的问题中的事件

view.bind('remove', _.bind(this.onRemove, this));

答案 2 :(得分:-1)

在视图内

事件:{     “删除”:“某些功能”,   },