控制器应该采用什么逻辑,路由应该包含哪些内容?

时间:2014-01-12 00:06:04

标签: model-view-controller ember.js

在我阅读了关于在控制器或路径中放置事件逻辑的位置的讨论后,我开始对此感到好奇。你应该在哪里处理(某些)事件? https://github.com/emberjs/ember.js/pull/1209

一般来说,在控制器或路线中放置东西的约定/规则是什么?

1 个答案:

答案 0 :(得分:3)

我喜欢把它想象成你需要采取行动的背景。这些行动以下列方式消失:

控制器 - >当前路线 - >父路线 - >申请途径。

所以一般来说,如果你只能在控制器的上下文中看到你的动作,那么它可能属于那里。如果路由处理多个控制器(例如,如果在模板中使用“render”),则该操作属于该路由。如果多个路由可以调用操作,则该操作属于父操作。

在实践中,这通常看起来像是在控制器上写入它们,然后在您意识到必要时将它们移动到路线上。

一些Ember开发人员也喜欢使用行动的本质来确定事情的发展方向(尽管我认为这是一种更为模糊的方式)。

例如根据这个思想流派:

如果操作与路由有关(可能是以“transitionTo”结尾),那么它就属于路由器。如果它不处理路由(比如只选择一个项目作为活动项),那么它就属于控制器。

重要的是选择一种启发式方法并与之保持一致,以便您/其他开发人员能够找到这些操作。