簡體   English   中英

Meteor.js我怎么知道我的收藏已經准備好在客戶端上

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

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM