MeteorJS - 监视服务器变量更改并更新模板值

标签 meteor reactive-programming

我有个疑问。不确定这是否可能,也没有找到明确的答案。

是否可以向服务器变量添加“观察者”,以便当值更改时,我可以更新 View (客户端)?

假设我有一个 var counter = 0和一个超时函数,它每分钟更新一次计数器变量。

我想更新 <span>{{counter}}</span>在客户端。我需要向这个服务器变量添加一个“观察者”并使其成为 react 性的。

提前致谢!

最佳答案

正确的方法是创建一个集合并将该变量存储在集合中(即使这意味着您有一个包含一个文档的集合)。

在服务器/客户端通用代码上:

Counter = new Mongo.Collection("counter");

在客户端做一个助手:
Template.myTemplate.helpers({
  counter: function () {
    return Counter.findOne();
  }
});

在服务器上确保有一个计数器:
if (Counter.find().count() === 0) {
  Counter.insert({value: 0});
}

然后,在服务器上增加计数器:
Counter.update({}, {$inc: {value: 1}});

如果您想跟踪多个计数器,您可以使用类似的方法 - 只需将多个计数器插入集合并通过 _id 引用它们 field 。

关于MeteorJS - 监视服务器变量更改并更新模板值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28056429/

相关文章:

c# - 使用 Reactive Extensions 进行数据库轮询

c# - 建议在长时间运行的过程中使用 rx distinct?

ios - Concat 运算符 RxSwift

javascript - 我的异步包装 Meteor 包有问题

android - APN,GCM(FCM): How to add rich media to notifications?

meteor - 在 meteor 项目中使用 materialize sass 源码需要哪些包?

meteor - 我如何删除jquery

java - doOnNext() 不会被调用 Spring Webflux

java - 异步编程和响应式(Reactive)编程

javascript - meteor ReactiveVar - TypeError : Cannot call method 'set' of undefined