【问题标题】:Ember.js: model interaction in controller or route?Ember.js:控制器或路由中的模型交互?
【发布时间】:2013-05-03 22:36:21
【问题描述】:

将模型交互(例如创建)保留在路由或控制器中是否被认为是 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()
  }

【问题讨论】:

  • 路由器包含与特定控制器(可能是模型)相关的逻辑是否有意义?如果在特定使用(或测试)情况下碰巧没有路由器会发生什么?

标签: ember.js


【解决方案1】:

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-07-23
    • 2018-06-20
    • 2012-07-25
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多