在我的渲染函数中,更改页面上的一些html,如下所示:
$($($('.round'+nextRound).find('li')[nextMatch]).find('.participant')[currentParticipant]).find('a').addClass('tooltip').html(winnerBox);
我需要在我的一个事件处理程序中撤消该更改:
'click #swear': function(event){
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{
!RE-RENDER MY TEMPLATE HERE!
// Session.set('roundUpdated', true);
}
});
},
我尝试过使用会话变量等,但我绝对没有运气! 我认为问题是这个模板有3个嵌套每个块:
each round
ul(class='round#{currentRound} of#{rounds}')
each match
li
each participant
助手看起来像这样:
round: function() {
// Session.set('updated', (Session.get('updated')+1));
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});
});
// console.log("results:", results);
return results;
},
match: function(){
// console.log("matches:", this.matches);
return this.matches;
},
participant: function(){
// do some calculations here
return results;
},
为简洁起见,代码有点不完整,但希望你能得到这个想法! 最奇怪的部分是,如果我在参与者助手中记录日志,它会记录正确的内容,但它永远不会被渲染回html ......就像它仍然有我用jquery强制进行的那样。
如果我从其他客户端更新模板,那么它有效吗?比如两个单独的客户端正确更新,但一个没有。
关于发生了什么或者我可以做些什么来修复它的想法?