读出控制器中相关模型的成员

时间:2014-11-13 14:58:03

标签: javascript ember.js ember-data

我在关系中有两个模特。 水平

App.Level = DS.Model.extend({
  title: DS.attr(),
  description: DS.attr(),
  results: DS.hasMany('levelresult', {
    async: true
  })
});

App.Level.FIXTURES = [{
  id: 1,
  title: "Lorem Ipsum",
  description: "Lorem Ipsum dollor sit amet",
  results: [100,101]
}];

和Levelresult

App.Levelresult = DS.Model.extend({
  minutes: DS.attr('number'),
  seconds: DS.attr('number'),
  points: DS.attr('number'),
  failures: DS.attr('number'),
  level: DS.belongsTo('level')
});

App.Levelresult.FIXTURES = [{
  id: 100,
  minutes: 44,
  seconds: 23,
  points: 7,
  failures: 0,
  level: 1
}, {
  id: 101,
  minutes: 12,
  seconds: 33,
  points: 4,
  failures: 22,
  level: 1
}];

所以我为父(-resource)-template声明了一条路线,如下所示:

App.LevelRoute = Ember.Route.extend({
    model: function (params) {
        return this.store.find('level', params.level_id);
    }

});

很容易将它们与level/result - 模板一起使用。甚至相关模型(作为Level-Model的成员)Levelresult也可以在模板中使用(例如{{#each result in results}})。

现在我想从相关的Levelresult中选择一个条目(例如“101”)。 但是在嵌套路线CONTROLLER(水平/结果如前所述)我无法读取除“id”之外的任何成员

App.LevelResultController = Ember.ArrayController.extend({
  getBestResult: function() {

    var results = this.get('results');

    results.forEach(function(result) {
      console.log(result.get('id')); //Output: "100" and "101" --> correct
      console.log(result.get('minutes')); //Output: "Undefined" and "Undefined" --> WHY?
    }

     //... Pick out the best one ...

  }.property('results')


});

我不明白,为什么阅读“id”只是有效但其他成员不会。

0 个答案:

没有答案
相关问题