javascript - Backbone Marionette 事件调度

标签 javascript backbone.js marionette

我首先进入主干、 Marionette 、下划线和这个项目的需求。我刚刚观看了一段很棒的视频,其中演讲者解释了 marionette 的一个好处是能够让应用程序对象委托(delegate)事件监听器和触发器,以便您的代码可以真正模块化。

如果这实际上是可能的,我就没有做对,而且我很难在网上找到任何示例,我想因为它是一个相对年轻的库。

这是我想要实现的目标的简化示例:

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 中的任意位置时,我会收到警报。现在,我意识到我没有正确传递对象,但这是我困惑的一部分。我认为我应该使用 Marionette 扩展 View 而不是主干 View 。

所以我的基本问题是,如何在 Backbone /Marionette 应用程序中编写模块,以便各个 View 可以广告事件,然后由“主”应用程序对象将其分派(dispatch)到正在监听该事件的模块?

最佳答案

尝试使用 Marionette View :

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

(此外,您需要在某个时刻显示 View 。)

您还可以在我的 book on Marionette 附带的代码中看到一个示例。 :

您可以在http://davidsulc.github.io/marionette-gentle-introduction/#contacts查看正在运行的应用程序

关于javascript - Backbone Marionette 事件调度,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22005210/

相关文章:

javascript - 使用 ajax 在 BackBone 中发出 GET 请求

javascript - Backbone.js 获取和设置嵌套对象属性

javascript - 在没有 View 的模型上使用backbone-validation.js

backbone.js - 如何将集合绑定(bind)选择框添加到 Backbone.Marionette 中的表单?

backbone.js - 如何将参数传递给主干 Marionette 复合 View 模板

javascript - 从字符串正则表达式中提取多个值

javascript - NodeJS async.parallel 成功被调用两次?

javascript - 避免在滚动上声明变量?

javascript - Next.js页面如何设置pageProps属性?

javascript - Marionette 中有 onBlur nanlog 吗?