問題が発生したようですが、考えられる解決策に取り掛かりましょう。
Meteorバージョン1.1
新しい流星バージョン1.1を使用している場合 (meteor --version
の実行を確認できます )
これを使用してください。
最初にonCreated
関数はこれを使用します。
Template.progressBar.onCreated(function () {
var self = this;
self.autorun(function () {
self.subscribe("Progress");
});
});
subsetReady の詳細をご覧ください DOCSで。今度はHTMLで このように使用してください。
<template name="progress">
{{#if Template.subscriptionsReady}}
<div id="progress-bar" style="width:{{curValue}}; background-color:*dynamicColor*;"></div>
{{else}}
{{> spinner}} <!-- or whatever you have to put on the loading -->
{{/if}}
</template>
1.0.4未満の流星
waitOn:function(){}
のようなものをルーター上に置くことができます
waitOn:function(){
Meteor.subscribe("Progress");
}
または ヘルパーは非同期であるため、次のようなことを行います(お勧めしません)。
Template.progressBar.helpers({
curValue: function () {
query = Progress.findOne({user: Meteor.userId()}).curValue;
if(query != undefined){
return query;
}else{
console.log("collection isn't ready")
}
}
});