Marionette的Application.execute和Application.trigger方法之间的区别是什么?

时间:2014-02-02 08:51:17

标签: backbone.js marionette

根据docsMarionette.Application提供了三种“行动”方法:

  1. Application.execute - 执行一些操作,但先使用MyApp.command('action', function () {});
  2. 注册
  3. Application.request - 与Application.execute类似,但可以返回
  4. Application.trigger - 与Application.execute相同。
  5. Application.triggerApplication.execute之间有什么区别?

1 个答案:

答案 0 :(得分:9)

当A调用execute时,命令 B执行某些操作。有一个直接的链接:一个订单,另一个执行(即必须发生的事情)。

触发器只是触发一个事件来指示应用程序中发生的事情。代码的其他部分可能正在侦听该事件并对其做出反应,但也有可能没有人在监听(因此不会发生任何事情)。基本上,通过使用触发器,您可以轻松地在应用程序中实现发布/订阅模式。

为了完整性,在Marionnette中还有一个triggerMethod调用:它会触发“some:event”信号,但如果适用,还会执行onSomeEvent函数。例如,myView.triggerMethod("some:event")会触发myView范围调用myView.onSomeEvent中的“some:event”。