最好的办法是处理基于订阅的数据。例如,你有一个游戏,你必须首先创建角色,然后才能做任何其他事情。目前,我可以尝试使用onBeforeAction
过滤器来处理它。所以我为每个需要角色的路线都有一个全局控制器。
DefaultController = LayoutController.extend({
onBeforeAction : function() {
var currentCharacter = Character.getCurrent.call({});
if(currentCharacter === undefined) {
this.render('CharacterCreate');
} else {
this.next();
}
},
waitOn() {
this.subscribe('characters.owned');
}
});
你有这样的路线:
Router.route('/game', { controller: 'DefaultController' });
问题是在加载集合之前,将显示游戏模板。有这样一个更好的方法吗?当路由需要一个字符时,另一个问题是它会在加载订阅之前抛出异常。
答案 0 :(得分:1)
只需在加载订阅时使用加载挂钩。
loading(){
this.render('myLoadingTemplate');
}
在等待订阅准备就绪时自动运行loading
挂钩。