【问题标题】:Hear for event outside Marionette ItemView听到 Marionette ItemView 之外的事件
【发布时间】:2016-02-27 01:01:01
【问题描述】:

我有以下 html -

<html>
    <body>
        <div id="one">
            <-- Marionette ItemView V1 rendered here -->
        </diV>

        <div id="two">
            <-- Mariontette ItemView V2 rendered here -->
        </div>
    </body>
</html>


如何在#one 内的#two 中收听mouseup 事件,如下所示:

var V1= Marionette.ItemView.extend({
    template: "#template_for_div#one",

    event: {
        "mouseup #two": "do_something",
        // Other events
    },

    // Other stuff
});

【问题讨论】:

  • 你能在 plunker/fiddle 上复制这个吗?
  • fiddle 不允许我添加骨干和木偶作为依赖 :(
  • 尝试使用 codepen.io
  • @VijaySingh 如果你想要两个视图进行通信,为什么不使用一个父视图来促进它..?
  • @TJ,你能再解释一下吗,你说的是 CompositeView 吗?

标签: jquery model-view-controller backbone.js marionette


【解决方案1】:

解决此问题的更好方法是创建两个对象都引用的dispatcher 对象。触发并侦听此对象上的事件。 (澄清一下,这个对象现在是一个视图,而不是一个主干事件对象,其唯一的工作就是调度事件。)

Backbone 文档在 Backbone.Events 部分下这样说:http://backbonejs.org/#Events “例如,制作一个方便的事件调度器,可以在应用程序的不同区域之间协调事件:var dispatcher = _.clone(Backbone.Events)”

【讨论】:

    猜你喜欢
    • 2014-11-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多