骨干牵线木偶事件调度

时间:2014-02-25 05:15:28

标签: javascript backbone.js marionette

我首先跳到骨干,牵线木偶,下划线并要求这个项目。我只是观看了一个很棒的视频,其中演讲者解释了牵线木偶的一个好处是能够让应用程序对象委托事件监听器和触发器,以便您的代码可以真正模块化。

如果这实际上是可行的,我就没有把它弄好,而且我很难在网上找到任何例子,我想是因为它是一个相对年轻的图书馆。

以下是我正在努力完成的一个简化示例:

var App = new Marionette.Application();
App.start();

var NavBar = Backbone.View.extend({
    el: '#nav',

    initialize: function () {},
    events: {
        'click': 'fireOff'
    },

    fireOff: function () {
        App.vent.trigger('trigger');
    }

});

var NavBar = new NavBarView({});

App.vent.on('trigger', function () {
    alert('something');
});

我期望在这里发生的事情是,当我点击#nav中的任何地方时,我会收到警报。现在,我知道我没有正确传递对象,但那是我困惑的一部分。我想我应该使用木偶扩展视图而不是骨干视图。

所以我的基本问题是,如何在骨干/木偶应用程序中编写模块,以便各个视图可以通告事件,然后由“主”应用程序对象将其分派给正在侦听该事件的模块?

1 个答案:

答案 0 :(得分:2)

尝试使用木偶视图:

var NavBar = Marionette.ItemView.extend({
  // ...
});

(另外,您需要在某些时候显示视图。)

您还可以在代码中找到与book on Marionette匹配的示例:

您可以在http://davidsulc.github.io/marionette-gentle-introduction/#contacts

看到该应用的运行情况