【发布时间】:2015-09-15 09:02:58
【问题描述】:
显然,我在使用 ReactiveVar 时做错了,因为我无法让它按预期工作。
我试图通过调用返回用户名列表的 Meteor.call 方法来设置 ReactiveVar 的值。但是当用户名在应用程序的另一部分发生更改时,它不会更新。
我都试过了:
Template.qastatistics.created = function () {
this.trackUsernames = new ReactiveVar(false);
var instance = Template.instance();
Meteor.call('trackUsernames', function (err, data) {
instance.trackUsernames.set(data);
});
};
和:
Template.qastatistics.helpers({
users: function () {
var usernames,
instance = Template.instance();
if (instance.trackUsernames.get() === false) {
Meteor.call('trackUsernames', function (err, data) {
instance.trackUsernames.set(data);
});
}
usernames = instance.trackUsernames.get();
...
但是当数据库中的用户名发生变化时,它们都不会更新用户名列表。
ReactiveVars 甚至可以做到这一点,还是我完全误解了它们?
编辑:我提到的用户名不是来自 Meteor.users 集合,而是来自另一个包含用户名的集合的不同调用。
【问题讨论】:
-
是的。我一次正确地获得了数据。但是当数据发生变化时它不会更新。
标签: meteor