Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/395.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 观察Meteor中的变量是否发生了变化_Javascript_Meteor - Fatal编程技术网

Javascript 观察Meteor中的变量是否发生了变化

Javascript 观察Meteor中的变量是否发生了变化,javascript,meteor,Javascript,Meteor,我发现并使用它如下: Template.restaurantMap.onCreated(function() { this.location = ReactiveVar; this.watch("location", function(value){ console.log('value changed', value); }); }); 它工作得很好。但是,有没有流星的方式来观看ReactiveVar 我只需要看一个ReactiveVar,而不是整个模板的附件列表。我需

我发现并使用它如下:

Template.restaurantMap.onCreated(function() {
  this.location = ReactiveVar;

  this.watch("location", function(value){
    console.log('value changed', value);
  });
});
它工作得很好。但是,有没有流星的方式来观看ReactiveVar

我只需要看一个ReactiveVar,而不是整个模板的附件列表。我需要和Meteor的模板、助手等分开观看


如果变量发生变化,我需要自己回拨。

任何反应计算中的反应变量都会被meteor自动监视。反应计算包括:

  • 模板助手
  • 铁刨钩
  • 自动运行
  • 这是自动运行
对我来说,模板助手的反应几乎总是足够的。如果不是,我将使用Tracker.autorun或this.autorun(在templates onRendered方法中)。

您可以使用,这是一种内置方式,用于创建自定义反应上下文(每当反应变量更改时运行的函数)。下面是一个例子:

Template.restaurantMap.onCreated(function() {
  this.location = new ReactiveVar;

  var self = this;
  this.autorun(function() {
    return console.log('location changed!', self.location.get());
  })
});

这将不起作用。将有多个ReactiveVar分配给模板。我只需要看一个。只有当其中使用的反应变量发生变化时,
自动运行
才会再次执行。所以,如果只读取一个变量,那么它似乎可以执行您想要的操作。我是不是误解了这个问题?这正是我想要的。非常感谢。奇怪的是autorun如何检测到我只想跟踪这个变量,而不跟踪我在同一模板上定义的其他变量。也许我需要更多地挖掘流星的反应性。这并不是我问题的答案。我要求独立于Meteor模板、助手等观看特定变量。。我需要添加我自己的观察者