0

假设有这样的路线:

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

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

  1. 组 - 这里我有模型通过它的 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 回调中做一些基于异步承诺的东西,以等待组加载。但究竟是什么?

4

2 回答 2

2

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

var group = this.modelFor('group'),
    id = group.get('id'),
    tolerance = group.get('membership.tolerance');
于 2013-11-01T14:15:12.573 回答
0

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

  model: ->
    @store.find 'tweet',
      group_id: @modelFor('group').get('id')
      tolerance: @modelFor('group').get('membership.tolerance')
于 2013-11-01T14:16:01.033 回答