我很难让Template.rendered代码等待从mongo集合加载数据:
Template.chart.rendered = function(){
var yelp_data, ndx;
var template = this;
template.autorun(function(){
console.log('autorun is called');
template.subscribe("yelp", function(){
yelp_data = Yelp.find().fetch();
ndx = crossfilter(yelp_data);
});
});
}
我可以看到,自动运行按预期调用,但是,当它完成时,yelp_data仍然是0的数组。 有没有办法强制流星等待,直到数据加载到变量?
答案 0 :(得分:1)
好的,根据您的评论,请试一试:
chartWrapper
,包装你的图表。chart
模板调用包含在chartWrapper的Template.subscriptionsReady助手中。代码:
<template name="chartWrapper">
{{#if Template.subscriptionsReady}}
{{> chart}}
{{/if}}
</template>
Template.chartWrapper.onCreated( function() {
var template = this;
template.subscribe("yelp");
});
Template.chart.onCreated( function() {
var yelp_data, ndx;
var template = this;
yelp_data = Yelp.find().fetch();
ndx = crossfilter(yelp_data);
});
我相信这会完全延迟您的chart
模板,直到Yelp数据可用。