如何制作一个使用计数器来计算值的函数

How to make a function that uses counters to compute values reactively

我是 meteor 的新手,我尝试使用 tmeasday:publish-counts 包来发布一些计数。当我只读取计数时,反应性开箱即用,但当我在 Template.helper 函数中使用计数时,该函数不会在计数更改时更新。

这是我的资料:

但是,子模板中的计数器在启动时执行良好,但在任何相关计数器更改时从不更新。

所以我的问题是,如何以及在何处让我的 nbSearchesThisWeek 助手对相关计数器值的变化做出反应?当我阅读有关 Deps、Tracking 和 ReactiveVars 的文档时,我感到非常困惑......我真的不明白应该在哪里使用这些东西来使我的用例工作......

感谢您的帮助。

菲利普

我已经创建了一个 MeteorPad,其代码尽可能与您的相同,并且都是反应式的,没有对您的代码进行任何更改。

请注意,我没有尝试重新创建您的 UserActions 集合,而是创建了两个单独的集合,UserActions 和 Players(名称没有意义)来创建两个与您的一样的计数器。我想一旦您看过代码,您就会同意,为了检查您的代码,它可以做到。

转到此页面:http://app-cmrd2ous.meteorpad.com/ 打开 Chrome 或 Firefox 控制台并插入以下两条记录并观察计数器:

UserActions.insert({name: 'bloggs', date: new Date()});
Players.insert({name: 'bloggs again', date: new Date()});

计数器都是被动的。

流星垫在这里:http://meteorpad.com/pad/n4GwwtPesEZ9rTSuq/Dashboard

我只能建议您查看我放置代码的位置(无论是在客户端还是在服务器上)- 也许这与它有关。

但更有可能是您 运行 进行了错误的测试。换句话说,也许你弄错了日期——你以为你插入的记录是上周的日期,而实际上是两周前或类似的日期。