javascript - 主干中的触发器和事件有什么区别?

标签 javascript backbone.js marionette

在 Backbone Marionette 中,您可以使用触发器和事件做极其相似的事情:

触发器:

return Marionette.Layout.extend({
    triggers: {
        'click .something': 'view:handleClickSomething'
    },

    initialize: function(){
        this.bindTo(this, 'view:handleClickSomething', this.handleClickSomething);
    },

    handleClickSomething: function(){}
}

对比事件:

return Marionette.Layout.extend({
    events: {
        'click .something': 'view:handleClickSomething'
    },

    handleClickSomething: function(ev){}
}

事件方式似乎是一种更快捷、更简单的方式,而且更容易获得实际事件本身(因为它是自动传递的)。有理由使用一个而不是另一个吗?他们的预期用例是什么?很难在网上找到很多关于这个的信息(除了试图理解带注释的来源)......

(我才刚刚发现事件方法,直到现在我一直在为所有事情使用触发器,因为我认为这是唯一的方法)

最佳答案

您的第一个示例是对触发器的错误使用。触发器旨在作为从 View 触发事件的快捷方式,以便外部对象可以捕获事件,而不是触发事件的 View 。

http://lostechies.com/derickbailey/2012/05/15/workflow-in-backbone-apps-triggering-view-events-from-dom-events/

关于javascript - 主干中的触发器和事件有什么区别?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13124755/

相关文章:

javascript - 是我一个人的问题,还是创建对话框后在对话框上设置模式不起作用?

javascript - 如何组织一个有 Backbone 的多应用程序?

javascript - MarionetteJS compositeView 的奇怪行为

javascript - 单一责任原则和Backbone.View

javascript - 如何过滤掉谷歌表格中的重复项和增量

javascript - 如何将字符串拆分为javascript数组?

javascript - 如果 Angular 超时返回 false,则重试函数调用

javascript - 是否有经验法则来决定何时在 Backbone.Marionette 中使用 trigger 或 triggerMethod?

php - Backbone.js:奇怪的 .save() 错误回调

javascript - 渲染 Marionette CollectionView 时如何删除每个 childView 之间的换行符?