我尝试在加载数据期间使用模态包在Meteor上显示加载警报。
'change .filterPieChart': function(evt){
Modal.show('loadingModal');
/* a little bit of work */
var data = MyCollection.find().fetch(); // takes 3 or 4 seconds
/* lot of work */
Modal.hide('loadingModal');
}
通常,警报显示在功能的开头,并在结束时消失。但是在这里,警报仅在MyCollection.find()的加载时间之后出现,然后在后面消失。如何在函数的开头显示它?
我尝试用反应变量替换Modal.show,结果相同,在函数结束时检测到反应变量的变化值。
答案 0 :(得分:0)
我认为您需要使用模板级订阅+ reactiveVar。它更像是流星的方式,你的代码看起来是一致的。我可以看到你在change
事件上做了一些额外的工作(检索一些数据)。有意义的是真正真正地检索事件上的数据而不是模拟它。
Template.TemplateName.onCreated(function () {
this.subsVar = new RelativeVar();
this.autorun( () => {
let subsVar = this.subsVar.get();
this.subscribe('publicationsName', this.subsVar);
})
})
Template.TemplateName.events({
'change .filterPieChart': function(evt){
Template.instance().collectionDate.subsVar.set('value');
Modal.show('loadingModal');
MyCollection.find().fetch();
Modal.hide('loadingModal');
}
})
请注意我没有测试此代码。你需要使用es6箭头功能。