1

我正在阅读Backbone.WreqrEventAggregator中的文档。它可以像下面这样使用。

MyApp.vent.trigger("some:namespaced:event");

MyApp.vent.on("some:namespaced:event", function(){
  // ...
});

我不明白,一旦在视图中设置了一个处理程序,我是否需要删除它,或者 Marionette 会在onClose方法或其他地方为我做这件事?如果我需要删除它,我可以遵循的最佳方法是什么?只是为了off那个事件有必要吗?是否同样适用于Commands使用removeHandler

你能指出我正确的方向吗?

4

1 回答 1

3

这取决于你的情况。如果您不想监听某些事件,当模块不工作时,您可以订阅模块“停止”事件并为所有必要的事件执行关闭。

module.on("stop", function(){
  App.vent.off(someMethods);
});

像往常一样,视图不使用全局事件聚合。但是如果你使用,你应该使用

this.listenTo( App.vent, "someEvent", function(){...} )

然后 Marionette 删除这个处理程序。

于 2013-10-21T09:51:44.717 回答