我是Marionette的新手,无法理解事件......
我有一个触发事件的ItemView,我希望在应用程序级别收到此事件,但是当我的应用程序监听此事件时,没有任何反应......
如果Event Aggregator在Application和ItemView中,为什么这段代码不起作用?:
var MessageItemView = Backbone.Marionette.ItemView.extend({
template: "#messagesTPL",
tagName: 'tr',
className: 'messageItem',
events : {
'click': 'displayMessage'
},
displayMessage: function () {
this.trigger('display:message');
}
});
App.on('display:message', function () {
console.log('display message !!!');
});
Run Code Online (Sandbox Code Playgroud)
如果要在应用程序级别监听事件,则必须在应用程序级别触发它:
displayMessage: function () {
myApp.trigger('display:message');
}
Run Code Online (Sandbox Code Playgroud)
假设myApp是您的 Marionette 应用程序。然后,您只需监听该事件:
myApp.on('display:message', ...)
Run Code Online (Sandbox Code Playgroud)
这是实现您所要求的唯一方法:“我有一个触发事件的 ItemView,并且我希望在应用程序级别接收此事件”。根据您的情况,更好的方法是
这两种解决方案都不需要“污染”全局事件空间。
| 归档时间: |
|
| 查看次数: |
8134 次 |
| 最近记录: |