从javascript加载Meteor渲染加载模板
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);
非常简单。查看由Handlebars构建的Spacebars。
{{#if Template.subscriptionsReady}}
{{> notLoading}}
{{else}}
{{> loading}}
{{/if}}
您可以通过使用Blaze.render
从javascript加载模板。在html中,创建一个div并为其分配一个id,比如"rendertemplatehree"。
HTML:
<div id="rendertemplatehere"></div>
在javascript中,在编写逻辑之后,每当您想要呈现模板时,在订阅准备好之后,执行
Javascript:(来自webdeb对同一问题的回答的帮助)
var view = Blaze.render(Template.loading, document.getElementById('rendertemplatehere'));
而且,如果你想删除模板(如果它已经呈现),当你的订阅到期/还没有准备好时,执行
Javascript:
Blaze.remove(view);
相关文章:
- 可以't在Meteor中加载Favicon
- Selectize.js:如何将数据库中已经选择的标签预加载到输入字段(Meteor&MongoDB/JSON)
- Meteor.js中的简单时钟或如何重新加载模板
- 在Meteor中加载带有采集数据的选择输入字段
- 使用Meteor为每个模板动态加载JS/CSS
- Meteor HTTP 调用不断加载图像
- 在 Meteor 中加载 Dropbox dropin.js 脚本
- 在 Meteor 中加载 youtube 播放器 API
- Meteor - 在模板加载时将类添加到 DOM 元素
- 如何更改 Meteor 加载 Javascript 文件的顺序
- 在 Meteor 中,如何使表单加载从先前从 MongoDB 集合中提取的插入对象预填充
- Meteor:使用ReactiveVar创建一个加载小部件,用于订阅用户集合
- Meteor加载特定于页面的CSS脚本
- Meteor AngularJS应用程序未加载指令
- 如果Meteor中选中复选框,则加载模板
- Meteor模板加载
- 懒惰加载Meteor中的模板
- Meteor不渲染css,并且在使用外部DDP Meteor实例时不断重新加载应用程序
- Meteor:显示初始加载时的加载微调器
- 从javascript加载Meteor渲染加载模板