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

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

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

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

提前致谢!

最佳答案

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

在服务器/客户端公共(public)代码上:

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

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

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

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

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

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

10-16 02:23