1
我有一个铁路由器呈现的游戏模板(当你从默认页面进入游戏)。 当游戏结束时,我希望播放器被路由到默认页面,当前游戏模板实例将被移除。如何销毁模板实例?
为此目的,我在游戏收集中使用移除的事件挂钩。它允许被自动重定向其他玩家的默认页面时,游戏结束:
Tempalte.game.rendered = function() {
var self = this;
var gameId;
//some code here
var game = Games.find({name: Session.get('gameName')});
game.observeChanges({
added: function(id, fields) {
gameId = id;
},
removed: function(id) {
if (gameId === id) { Router.go('/');
alert("Game finished");}
}
});
}
当我完成比赛,并创造新的具有相同名称。警报被调用两次。 一个完成/创建=>三个警报。 看起来游戏模板实例仍然保留在后台某处,并监视Games集合中的更改。
所以问题是如何在进入默认页面时正确删除模板实例? 试过Blaze.remove(self)不工作,因为游戏模板没有用Blaze.render()渲染。 在路由器中,我不知道如何获取模板实例的句柄。
谢谢!这有帮助! – 2014-09-20 17:20:00