2

从架构上讲,控制器(通常)不知道视图,当然也不知道其他控制器的视图。控制器也不知道其他控制器。有时这些松散耦合的组件需要能够进行通信,但最佳实践是不要将它们紧密耦合在一起。是否有消息框架插件允许不同的组件在应用程序内发出和接收全局消息?有没有更好的方法来处理这些类型的通信?

4

2 回答 2

3

使用 jQuery.Callbacks 之类的东西创建 pub/sub 集线器并不难。但是,这不是典型的 Ember.js 应用程序的一部分。

当发生需要在责任控制器范围之外进行通信的事情时,模式是将操作发送到路由器,当前状态可以处理它。router/stateManager 是应用程序的协调器,可以通过向其他控制器和/或模型发送消息和/或转换到另一个状态来响应操作。

我试图在最近的一次演讲中对此进行图解:http ://www.lukemelia.com/devblog/archives/2012/08/23/architecting-ember-js-apps/

于 2012-10-11T02:43:33.143 回答
1

我对 Ember 还是很陌生,但Ember Instrumentation在这种情况下不会有用吗?它允许发布和订阅自定义事件。在这个答案中可以看到很好的解释。

于 2013-02-18T21:57:36.783 回答