[英]Meteor render loading template from javascript
我的问题很简单,但是我没有找到确切的答案。
<template name="loading">
//loading spineer
</template>
现在,我需要隐藏并显示此模板,并已准备好订阅。 如何从javascript渲染加载模板。 我努力了
{{#unless Template.subscriptionsReady}}
{{> loading}}
{{/unless}}
和
{{#If Template.subscriptionsReady}}
{{> loading}}
{{else}}
content
{{/if}}
但是在我的情况下#unless
和#if
不是必需的。 必须从脚本加载它。
您可以使用Blaze.render()
或Blaze.renderWithData()
函数从JS渲染模板。
官方的流星文档描述了如何使用它
http://docs.meteor.com/#/full/blaze_render
例:
// This will render your template to the body and remove it after 3000ms
var view = Blaze.render(Template.loading, document.getElementsByTagName('body')[0]);
setTimeout(function() { Blaze.remove(view) }, 3000);
您可以通过使用Blaze.render
从javascript加载模板。 在您的html中,创建一个div并为其分配一个ID,例如“ rendertemplatehere”。
HTML:
<div id="rendertemplatehere"></div>
在javascript中,编写逻辑后,只要您要呈现模板,就可以在订阅就绪后执行,
Javascript :(来自webdeb的同一问题答案的帮助)
var view = Blaze.render(Template.loading, document.getElementById('rendertemplatehere'));
而且,如果您要删除模板(如果模板已经渲染),则当您的订阅到期/尚未准备就绪时,请执行,
Javascript:
Blaze.remove(view);
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.