2

我正在使用 Backbone.Marionette 和 RequireJS。我所有的应用程序对象都是完全模块化的。

我想使用封闭的 Marionette.Application 实例的vent对象作为应用程序范围的全局事件总线。我想做的是从vent某个子 ItemView/CollectionView/whatever 中触发一个事件,但据我所知,在子视图中没有对封闭应用程序实例的引用。是对的吗?

我知道我可以require()将实际的应用程序实例放入我的视图中(小心自然地避免循环依赖),但据我所知,这破坏了我的模块的封装。如果通用 ItemView 必须require()具有特定的应用程序模块/实例,那么我不能将该 ItemView 与恰好在我的代码库中的任何其他应用程序一起使用。

当然,Marionette.Application 在任何实例化的区域/布局/子视图中传播对自身的引用是有意义的吗?这样vent,任何子视图都可以触发全局事件,而不必知道哪个具体的 Marionette.Application 实现是父应用程序?

还是我错过了一些基本的东西?

谢谢!

4

1 回答 1

1

这在 wiki 中有介绍:https ://github.com/marionettejs/backbone.marionette/wiki/Using-marionette-with-requirejs

请参阅避免循环依赖的部分

于 2013-02-20T17:16:07.573 回答