我有一个应用程序,其中一种类型的视图嵌套在同一类型中。类似于http://take.ms/ylAeq
如何捕获视图按钮上的事件和正确视图上的激发事件?
当我有**~10**个触发事件时,我会遇到这样的情况,因为 Backbone.js 将事件绑定到所有内部按钮,而不仅仅是正确视图的按钮。
我有一个想法--我在模板id="node_body_<%= id %>"
中创建了一个按钮,这样每个按钮的id都基于它的视图的模型id;但是如何将它传递给事件对象呢?{ "click #node_body_" + id : 'method' }
不起作用。
2条答案
按热度按时间klh5stk11#
问题是事件冒泡。内部视图上的事件冒泡到其父视图的
el
上,后者监听同一选择器上的事件,进而触发其处理程序。这可以通过在相应视图的处理程序中停止事件的传播来解决:
jdgnovmf2#
Backbone.js 视图的大多数属性都可以是函数而不是文字值。例如,这两个属性具有相同的结果:
和
因此,如果你的
events
依赖于视图的属性,那么你需要使用函数而不是对象文字:这假定
id
是您在模板中使用的视图的属性。