如何计算父路由模型的项目以在嵌套路由中使用它?

时间:2015-01-18 17:16:39

标签: javascript ember.js ember-data

我有一个类似的结构

App.Router.map(function() {
  this.route("levels");
  this.resource("level", {path: 'levels/:level_id'}, function()  {
    this.route("play");
  });
});

现在,我需要使用嵌套模型中的项目数(级别记录)信息" level / play"。 我的第一个方法是插入我的播放控制器中:

App.LevelPlayController = Ember.ObjectController.extend({

    getLevelCount: function() {
        var allLevels = this.store.find("level");
        var levelCount = allLevels.get("length");
        return levelCount;
    }.property()
}

但这似乎不起作用。也许是因为异步加载?

有人可以帮忙吗?

1 个答案:

答案 0 :(得分:1)

由于父路线的模型已经加载,您只能在子路径中访问它:

Ember.Route.extend({
  model: function() {
    return this.modelFor('level');
  }
});

然后在您的控制器中,您可以访问该级别作为model属性。

访问商店更像是一个路由而不是控制器。