即使调用了帮助程序,流星模板也不会重新渲染?

时间:2014-12-16 06:40:36

标签: javascript templates meteor render

我在前端有这个模板:

if tournament
            .tournament
                if round
                    each round
                        ul(class='round#{currentRound} of#{rounds}')
                            each match
                                li
                                    each participant
                                        if winner
                                            .participant.winner
                                                a(href='#')
                                                    span.participant-title #{displayName}
                                                    span.participant-number #{rank}
                                                    span.participant-id #{id}
                                                    span.participant-status #{status}
                                                    span.participant-round #{thisRound}
                                                    span.participant-match #{thisMatch}
                                        else if pending
                                            .participant
                                                a(href='#')
                                                    span.participant-title Waiting...
                                                    span.participant-number xxx
                                                    span.participant-id #{id}
                                                    span.participant-status #{status}
                                                    span.participant-pending
                                                    span.participant-disagree #{disagree}
                                                    span.participant-round #{thisRound}
                                                    span.participant-match #{thisMatch}
                                        else
                                            .participant.loser
                                                a(href='#')
                                                    span.participant-title #{displayName}
                                                    span.participant-number #{rank}
                                                    span.participant-id #{id}
                                                    span.participant-status #{status}
                                                    span.participant-round #{thisRound}
                                                    span.participant-match #{thisMatch}
                else
                    h1#not-found Tournament Not Found

和这个助手:

tournament: function(){
    if (this.tournament) {
        return true;
    }else{
        return false;
    }
},
round: function() {
    var tournament = this.tournament.brackets;
    var rounds = tournament.length;
    var results = [];
    tournament.map(function(value, index){
        var currentRound = index + 1;
        results.push({rounds: rounds, currentRound: currentRound, matches: value});
    });
    return results;
},
match: function(){
    return this.matches;
},
participant: function(){
    var results = [];
    this.map(function (value, index) {
        var type = value['win'];
        var obj = {
            id: value['id'],
            rank: value['id'].slice(0,3),
            displayName: value['displayName'],
            thisRound: value['round'],
            thisMatch: value['match'],
            status: type,
            disagree: value['disagree']
        };
        if (value['disagree']) {
            console.log("value:", value);
        }
        if (type === true || type === 'undetermined') {
            obj.winner = true;
        }else if (type === 'pending'){
            obj.pending = true;
        }else{
            obj.loser = true;
        }

        results.push(obj);
    });
    return results;
}

每次锦标赛对象发生变化时,帮助程序都会运行...但模板只会在第一次调用meteor方法时更新?

你之前有过这样的经历吗? 我可以发布我的流星方法,如果这也有帮助。

我在哪里更改数据:

    Meteor.call('submitWinner', winnerInfo, thisCampaign._id, Meteor.user().apiKey, function(error, result) {
        // display the error to the user and abort
        if (error){
            return alert(error.reason);
        }else{
            // update css?
            var updateWaiting = $('.last-submitted').closest('.participant');
            // updateWaiting.html('<a href=#><span class=participant-title>Waiting...</span> <span class=participant-number>xxx</span></a>');
            // updateWaiting.removeClass('undetermined')
            $('#theaterMode').hide();
            $('.swearBox').hide();
        }
    });

0 个答案:

没有答案