根据docs,Marionette.Application
提供了三种“行动”方法:
Application.execute
- 执行一些操作,但先使用MyApp.command('action', function () {});
Application.request
- 与Application.execute
类似,但可以返回Application.trigger
- 与Application.execute
相同。 Application.trigger
和Application.execute
之间有什么区别?
答案 0 :(得分:9)
当A调用execute
时,命令 B执行某些操作。有一个直接的链接:一个订单,另一个执行(即必须发生的事情)。
触发器只是触发一个事件来指示应用程序中发生的事情。代码的其他部分可能正在侦听该事件并对其做出反应,但也有可能没有人在监听(因此不会发生任何事情)。基本上,通过使用触发器,您可以轻松地在应用程序中实现发布/订阅模式。
为了完整性,在Marionnette中还有一个triggerMethod
调用:它会触发“some:event”信号,但如果适用,还会执行onSomeEvent
函数。例如,myView.triggerMethod("some:event")
会触发myView
范围和调用myView.onSomeEvent
中的“some:event”。