【问题标题】:Ember: route depending on the parent route's controllerEmber:路由取决于父路由的控制器
【发布时间】:2013-11-01 11:51:08
【问题描述】:

假设有这样的路线:

  @resource 'group', path: '/group/:group_id', ->
    @route 'tweets'

现在我有了这些路径和控制器:

  1. group - 这里我有模型通过它的 id 加载
  2. group.index - 这里我使用那个模型
  3. group.tweets - 这里我需要加载一些依赖于 group.id 的附加集合

在 GroupTweetsRou​​te 中这样做的简单方法(不起作用):

  model: ->
    @store.find 'tweet',
      group_id: @get('controllers.group.id')
      tolerance: @get('controllers.group.membership.tolerance')

我也试过 controllerFor。 所以目前我在那里没有小组。但是我稍后会看到它,或者如果我从 group.index 页面到达那里。

我的猜测是,我可以在 beforeModel 回调中做一些基于异步承诺的事情,以等待组加载。但究竟是什么?

【问题讨论】:

    标签: ember.js ember-router ember-controllers


    【解决方案1】:

    modelFor 可以在模型解析阶段使用。在构建和设置控制器之前,您的所有模型都已解析(这就是为什么您的 controllerFor 无法在更深层次的模型挂钩中工作的原因)。

    var group = this.modelFor('group'),
        id = group.get('id'),
        tolerance = group.get('membership.tolerance');
    

    【讨论】:

    • 啊哈哈...好的,一分钟内:)
    【解决方案2】:

    好的,这是适用于我的解决方案:

      model: ->
        @store.find 'tweet',
          group_id: @modelFor('group').get('id')
          tolerance: @modelFor('group').get('membership.tolerance')
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-07-25
      • 2013-12-21
      • 1970-01-01
      • 2018-01-04
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多