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