[英]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.