Ember.js:控制器或路线中的模型交互?

时间:2013-05-02 21:33:13

标签: ember.js

是否考虑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()
  }

1 个答案:

答案 0 :(得分:4)

通常,如果某个操作仅影响特定控制器中的状态或该控制器前端的模型,那么您应该在控制器中处理它。如果它影响更广泛的应用程序状态(即另一个控制器),或者导致路由转换,或者应该由基于应用程序状态的不同逻辑处理,则应该在路由器中处理。