我正在为我的Meteor应用程序使用Counter-Up插件。 在第一次网站加载时,它工作正常,但实时更改似乎有问题。
我想显示在我的网络应用中创建的总游戏,所以我有这个帮手:
totalGames: function () {
return Games.find().count();
}
这是我的渲染函数:
Template.home.rendered = function () {
$('.counter').counterUp({
delay: 10,
time: 500
});
};
现在的问题是,由于反应性,计数器不会增加。因此,如果用户A在主站点上看到号码 1 的计数器并且突然创建了新游戏,则该号码将更改为 12 而不是 2
我该如何解决这个问题? 任何帮助将不胜感激。
答案 0 :(得分:1)
尝试一下:
Template.home.rendered = function() {
this.autorun(function() {
if (Template.currentData() && Games.find().count())
$('.counter').counterUp({delay: 10, time: 500});
});
};
理论上,这应该在counterUp
计数发生变化时重新运行Games
初始化。 Template.currentData
业务仅仅是autorun
rendered
内部{{1}}的工作 - 请参阅我的相关答案here。
答案 1 :(得分:0)
当我遇到这种行为时,我会运行它。我也遇到了随机问题。延迟是由于你的浏览器上没有从mongodb获得正确缓存的minimongo引起的。
我采取以下措施来启动ddp以通过线路获取数据。
1)我关闭了终端。这应该有0影响,但有时事情会挂断。就试一试吧。
2)rm -rf~ / [项目名称] .meteor / local / .mirror
3)仔细检查我保存了我的更改。