【问题标题】:How to handle subscription in Meteor / Iron Router如何在 Meteor / Iron Router 中处理订阅
【发布时间】: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


    【解决方案1】:

    在加载订阅时使用加载钩子。

    loading(){
      this.render('myLoadingTemplate');
    }
    

    loading 挂钩在等待订阅准备好时自动运行。

    您可能会发现my post on building a clean router.js file 很有用。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2015-07-07
      • 1970-01-01
      • 2018-07-12
      • 2017-01-19
      • 2014-02-01
      • 1970-01-01
      • 1970-01-01
      • 2014-12-29
      相关资源
      最近更新 更多