Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/ember.js/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/assembly/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ember.js ArrayComputed:未从承诺解析Groupby和计算属性_Ember.js - Fatal编程技术网

Ember.js ArrayComputed:未从承诺解析Groupby和计算属性

Ember.js ArrayComputed:未从承诺解析Groupby和计算属性,ember.js,Ember.js,我有一个组模型,其中包含来自多个用户的一些赌注。每个用户可以有多个赌注。为了显示最终结果,我想按用户对下注进行分组,然后汇总分数。这是我的赌注模型,包含积分逻辑: App.GameBet = DS.Model.extend({ scoreT1: DS.attr(), scoreT2: DS.attr(), betRound: DS.belongsTo('betround'), game: DS.belongsTo('game', {async:true}

我有一个组模型,其中包含来自多个用户的一些赌注。每个用户可以有多个赌注。为了显示最终结果,我想按用户对下注进行分组,然后汇总分数。这是我的赌注模型,包含积分逻辑:

    App.GameBet = DS.Model.extend({
    scoreT1: DS.attr(),
    scoreT2: DS.attr(),

    betRound: DS.belongsTo('betround'),
    game: DS.belongsTo('game', {async:true}),
    user: DS.belongsTo('user', {async:true}),

    points: function(){
        var game = this.get('game');

        var sc1 = this.get('game.scoreT1');
        var sc2 = this.get('game.scoreT2');
        var b1 = this.get('scoreT1');
        var b2 = this.get('scoreT2');

        if(sc1 == b1 && sc2 == b2) {
            return 7;
        } else if ((sc1 - sc2) == (b1 - b2)) {
            return 5;
            // Exakte Punktzahl
        } else if ((sc1 - sc2) * (b1 - b2) > 0) {
            return 3;
            // Tendenz
        } else {
            return 0;
        }
    }.property('scoreT1', 'scoreT2', 'game.scoreT1', 'game.scoreT2')

});
这是完美的工作,当我只是渲染与他们的点所有赌注。但当我使用自己的groupby ArrayComputeed函数时,它不起作用:

App.betGroupBy = function (dependentKey) {
    var options = {
        initialValue: Ember.A([]),

        initialize: function (array, changeMeta, instanceMeta) {
            return instanceMeta.previousKeys = {};
        },

        addedItem: function (accumulatedValue, item, changeMeta, instanceMeta) {
            console.log(item.get('id') + " " + item.get('points'));
            var user = item.get('user');
            var key = user.get('id');
            var group = accumulatedValue.findBy('key', key);
            if (!group) {
                group = Ember.Object.create({
                    key: key,
                    user: user,
                    bets: Ember.A([]),
                    betPoints: Ember.computed.mapBy('bets', 'points'),
                    points: Ember.computed.sum('betPoints')
                });
                accumulatedValue.pushObject(group);
            }
            group.get('bets').pushObject(item);
            instanceMeta.previousKeys[Ember.guidFor(item)] = key;
            return accumulatedValue;
        },

        removedItem: function (accumulatedValue, item, changeMeta, instanceMeta) {
            var key = item.get(property);
            var group = accumulatedValue.findBy('key', key);
            if (!group) {
                return;
            }
            var userBets = group.get('bets');
            userBets.removeObject(item);
            if (userBets.length === 0) {
                accumulatedValue.removeObject(group);
            }
            return accumulatedValue;
        }
    };
    return Ember.arrayComputed(dependentKey, options);
};
不知何故,我在分组函数中的“点”总是零。
似乎承诺还没有足够早地得到解决或其他什么。

您是否检查了每个游戏赌注的isLoaded属性?