在我阅读了关于在控制器或路径中放置事件逻辑的位置的讨论后,我开始对此感到好奇。你应该在哪里处理(某些)事件? https://github.com/emberjs/ember.js/pull/1209
一般来说,在控制器或路线中放置东西的约定/规则是什么?
答案 0 :(得分:3)
我喜欢把它想象成你需要采取行动的背景。这些行动以下列方式消失:
控制器 - >当前路线 - >父路线 - >申请途径。
所以一般来说,如果你只能在控制器的上下文中看到你的动作,那么它可能属于那里。如果路由处理多个控制器(例如,如果在模板中使用“render”),则该操作属于该路由。如果多个路由可以调用操作,则该操作属于父操作。
在实践中,这通常看起来像是在控制器上写入它们,然后在您意识到必要时将它们移动到路线上。
一些Ember开发人员也喜欢使用行动的本质来确定事情的发展方向(尽管我认为这是一种更为模糊的方式)。
例如根据这个思想流派:
如果操作与路由有关(可能是以“transitionTo”结尾),那么它就属于路由器。如果它不处理路由(比如只选择一个项目作为活动项),那么它就属于控制器。
重要的是选择一种启发式方法并与之保持一致,以便您/其他开发人员能够找到这些操作。