2

将模型交互(比如创建)保留在路由或控制器中是否被认为是 Ember.js 的最佳实践?

一个例子:下面的 CoffeeScript 可以正常工作,如果将“保存”逻辑移到控制器中也可以工作。一种做法是否优于另一种做法,如果是,为什么?

App.UsersNewRoute = Ember.Route.extend
  model: ->
    App.User.createRecord()
  setupController: (controller, model) ->
    controller.set('content', model)
  events: {
    save: (user) ->
      user.on "didCreate", @, () -> 
        @transitionTo 'users.show', user
      @get('store').commit()
  }
4

1 回答 1

4

一般来说,如果一个动作只影响特定控制器中的状态,或者该控制器前面的模型,那么您应该在控制器中处理它。如果它影响更广泛的应用程序状态(即另一个控制器),或导致路由转换,或应根据应用程序的状态由不同的逻辑处理,则应在路由器中处理。

于 2013-05-03T14:36:21.317 回答