我有个疑问。不确定是否可能,也没有找到明确的答案。
是否可以向服务器变量添加“观察者”,以便在值更改时更新 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/