【问题标题】:How to pause Iron Router template rendering until all data is available?如何暂停 Iron Router 模板渲染,直到所有数据可用?
【发布时间】:2015-11-22 17:37:14
【问题描述】:

当前常见的 Iron Router 模式是在等待数据可用时显示加载模板。但我宁愿简单地等待先前渲染的模板/数据上下文,直到数据可用,然后触发重新渲染。数据快速可用,因此加载模板的短暂闪烁比用户单击链接后的短暂延迟更糟糕。

【问题讨论】:

    标签: meteor iron-router


    【解决方案1】:

    这种模式适合你吗?

    Router.route('/', {
        name: 'nameOfTemplate',
        data: function() { return CollectionName.find({title: 'nameOfMongoDBQuery'}); }, 
        waitOn: function() { return Meteor.subscribe('nameOfSubscription'); } // waits until resources arrive before rendering page
    });
    

    【讨论】:

    • 否,此模式在等待订阅时仍显示默认加载模板。
    【解决方案2】:

    您需要像这样指定一个显式的action 函数:

    action: function() {
        if (this.ready()) {
            this.render();
        }    
    }
    

    在数据出现之前,它不会渲染任何东西。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2014-01-16
      • 2015-03-06
      • 2014-07-06
      • 2015-12-22
      • 2014-11-29
      • 2015-06-23
      • 2015-05-31
      • 1970-01-01
      相关资源
      最近更新 更多