所以我有一个hasMany定义为如此
任务:DS.hasMany('quest')
我有一个属性应该通过每个任务并计算总数。
该函数看起来像这样,
questXP: function() {
var amount = 0;
this.get('quests').forEach(function(item)
{
console.log(item.get('xpReward'));
amount += parseInt(item.get('xpReward'));
});
return amount;
}.property('quests'),
我尝试将async:true添加到hasMany但是它会阻止forEach工作。目前它循环3次(我有3个任务),但它无法访问任何任务的属性。 我的想法是它与任务仍然被加载的事实有关。
关于我做错的任何想法?
答案 0 :(得分:4)
您的计算属性取决于每个xpReward
属性。因此,您需要使用quests.@each.xpReward
而不是quests
。
questXP: function() {
var amount = 0;
this.get('quests').forEach(function(item)
{
console.log(item.get('xpReward'));
amount += parseInt(item.get('xpReward'));
});
return amount;
}.property('quests.@each.xpReward'),