两个视图中的骨干丢弃事件监听器

时间:2013-08-08 03:45:00

标签: javascript jquery ruby-on-rails backbone.js

我的应用程序有一个带两个面板的仪表板。每个面板都是一个不同的主干视图,可以在相应的面板中呈现模板。视图由骨干路由器实例化。我需要在某处放置一个Drop Event Listener来检测一个View中的<li>元素何时被删除到第二个View上。但是,我不知道把听众放在哪里......

•当我将事件放在"drop #drop-zone": "handleDrop"

之类的任一视图中时,我无法触发事件

•在实例化视图后将事件侦听器放入路由器也不起作用。

•我的下一个想法是将Drop Event Listener放在ListeStart的Listener中,但我不确定这是否是最好的路径。

听取Drop事件的适当位置在哪里?

1 个答案:

答案 0 :(得分:0)

// app.js, main.js, router.js, etc.
window.event_bus = {};

_.extend(object, Backbone.Events);

event_bus.on("drop", function(target) {
    // do something with target
});

// drop-zone-one-view.js
"drop #drop-zone-one": function () { event_bus.trigger('drop', 'drop-zone-one') }

// drop-zone-two-view.js
"drop #drop-zone-two": function () { event_bus.trigger('drop', 'drop-zone-two') }