ember.js – Ember路由器和控制器逻辑

我很想知道关于新的ember路由和控制器的哪一层逻辑是什么:

如果我们以下面的路线为例:

step1: Ember.Route.extend
  route: '/step1'
    connectOutlets: (router, event) ->
      exercise = WZ.Exercise.createRecord()
      router.get('exercisesNewStep1Controller').set 'groups', WZ.store.find(WZ.Group)
      router.get('exercisesNewController').connectOutlet 'step', 'exercisesNewStep1', exercise

我的ExercisesNewStep1Controller目前是无逻辑的:

WZ.ExercisesNewStep1Controller = Em.Controller.extend()

建议的建议似乎是让路径只需要使用控制器中的任何其他逻辑将正确的插座分配给正确的控制器.

我应该重构我的控制器:

WZ.ExercisesNewStep1Controller = Em.Controller.extend
  createGroup: ->
    @set 'groups', WZ.store.find(WZ.Group)

这是一个非常简单的例子,但我认为逻辑成立.

我有点困惑所有层面的地方.我认为必须创建所有这些xxxController,xxxView文件以及它们之间的耦合,所以会产生少量开销.

我喜欢灰烬,但我只想提出这一点.

最佳答案
我与Tilde团队进行了一些交流,而Tom Dale告诉我们要遵循hvgotcodes提出的方式.

但是在与Peter Wagenet讨论之后出现了一个改进:作为对我的interrogation的答复,Peter& Yehuda mitigated我们从Tom解释的位置.

所以我会总结整个画面说:

>行为应该在路由的事件处理程序中以高级编码,
>但是分解的低级基元可以(/应该)在控制器中进行本地化.

原因是任何处理都应限定在给定路径中,这样可确保整个应用程序的连贯行为,而不是将所有可能的处理打开到应用程序的任何部分.

转载注明原文:ember.js – Ember路由器和控制器逻辑 - 代码日志