[英]Meteor.js How do I know my collection is ready on the client
當Collection在客戶端上完成加載時,我需要執行特定的渲染任務。 什么是了解客戶端上的數據何時可用的最佳策略。
我想出了這個解決方案:
Meteor.subscribe( 'alldrawings', myRendering );
function myRendering(){
//do some no-markup stuff with the data
//(i'm creating canvas objs and drawing on them)
}
這是這樣做的嗎? 除此之外是否有推薦的方法?
您可以自己設置一個反應變量:
alldrawingsReady = new ReactiveVar(false);
Meteor.subscribe('alldrawings', function() {
alldrawingsReady.set(true);
});
Tracker.autorun(function(){
if(!alldrawingsReady.get()) {
return;
}
// Do some no-markup stuff with the data
// (eg. creating canvas objs and drawing on them)
});
如果您需要准備好集合和模板,請使用以下命令:
Template.my_template.rendered = function() {
this.autorun(function(){
if(!alldrawingsReady.get()) {
return;
}
// Do some DOM manipulations based on the data
});
}
您當然可以使用訂閱回調。 AFAIK,如果訂閱已完全更新,這是唯一可能的檢測方法。
另一個選擇是使用帶有集合游標的觀察者: http : //docs.meteor.com/#observe 。 但我認為隨着數據的到來,觀察者會被一個接一個地調用,而不是一次完成(僅限)。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.