我不确定这是Meteor问题还是通用问题,但我的应用程序中有以下代码。
<template name='admin'>
<div class='admin container-fluid noPadding'>
{{#if isInRole 'Admin'}}
<h3 class="homepageText">Server Statistics</h3>
{{> serverFacts}}
{{else}}
You don't belong here!
{{/if}}
</div>
当页面呈现时,我看到&#34;你不属于这里!&#34;,然后&#34;服务器统计&#34;大约一秒左右取代它。我在我的应用程序中的其他地方总是遇到与Blaze {{#if ...}}
相关的问题。有没有办法阻止页面在浏览器中显示,直到渲染完成并安定下来?
答案 0 :(得分:1)
这是被动应用程序的一般问题 - 渲染经常在数据仍被推送到客户端时发生。通常的解决方案是使用微调器(例如:Polymer 1 demo),直到基础订阅准备就绪。然后在Blaze你最终得到:
<template name='admin'>
{{#if loading}}
{{> spin}}
{{else}}
<div class='admin container-fluid noPadding'>
{{#if isInRole 'Admin'}}
<h3 class="homepageText">Server Statistics</h3>
{{> serverFacts}}
{{else}}
You don't belong here!
{{/if}}
{{/if}}
</div>
根据您的订阅,您需要帮助程序来计算loading
。在由多个订阅支持的更复杂的布局中,您最终可能会有多个旋转器旋转。