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