【发布时间】:2016-11-21 22:45:22
【问题描述】:
处理基于订阅的数据的最佳方式是什么。例如,您有一个游戏,您必须先创建角色,然后才能执行任何其他操作。目前我认为我可以尝试使用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' });
问题是直到加载集合,游戏模板才会显示。有没有像这样更好的方法?还有一个问题,当路由需要一个字符时,它会抛出一个异常,直到订阅被加载。
【问题讨论】:
标签: meteor iron-router subscription