2015-11-25 132 views
0

我有一個加載模板。每當客戶端從服務器訂閱數據時都需要加載loading template流星在autorun中刪除火焰模板

Template.myTemplate.onCreated(function() { 
    var loading; 
    Template.instance().autorun(function() { 
     if (!Template.instance().subscriptionsReady()) { 
      loading = Blaze.render(Template.loading, document.getElementsByTagName('body')[0]); 
     } else { 
      Blaze.remove(loading); 
     } 
    }); 
}); 

第1次Blaze.renderBlaze.remove工作正常。但是,如果我再次訂閱,它會繼續添加loading模板。 else部分執行時如何從DOM中移除模板?

+0

我只是簡單地檢查模板是否已經被渲染。然後我再次不明白你的問題。你是什​​麼意思「刪除正確的模板」?你只在這裏呈現並移除'加載'模板... – durrrr

+0

@durrrr無論何時訂閱準備好是'true' Blaze在body標籤中加入'loading template'元素。 –

回答

0
if (!Template.instance().subscriptionsReady()) { 
    if (Template.loading.isRendered) { 
     return; 
    } 
    // if not rendered to DOM, then do render 
} else { 
    Blaze.remove(loading); 
}