4

所以我有一个 hasMany 定义为 so
quests: DS.hasMany('quest')
我有一个属性应该通过每个 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 个任务),但它无法访问任何任务的属性。我的想法是这与任务仍在加载的事实有关。

关于我做错了什么的任何想法?

4

1 回答 1

4

您的计算属性取决于每个xpReward属性。所以你需要使用quests.@each.xpRewardi 而不是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'),
于 2013-11-04T15:56:25.797 回答