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”只是有效但其他成员不会。