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