我目前有一段类似这样的代码:
Tracker.autorun(function() {
var foo = Session.get("foo")
var bar = Session.get("bar")
if (bar)
console.log("foo changed and bar is set")
else
console.log("foo changed and bar is not set")
}
此代码失败,因为控制台打印了一个 foo changed
消息即使只有bar
变化。
我有同时使用 foo
和 bar
在我的里面 Tracker.autorun()
, 没有它运行时 bar
更改,我想通过告诉“Tracker”不要跟踪来做到这一点 bar
或者如果可能的话询问 Tracker
是什么引发了重新计算,而不是将函数分成不同的自动运行函数或手动密切关注什么 Session
变量发生了变化。
最佳答案
这种方法怎么样?
var foo;
var bar;
Tracker.autorun(function() {
foo = Session.get("foo")
bar = Session.get("bar")
});
Tracker.autorun(function() {
// Track for changes of `foo`
Session.get("foo");
if (bar)
console.log("foo changed and bar is set")
else
console.log("foo changed and bar is not set")
});
更新。 哦,我明白了,你已经找到了解决办法。无论如何,我会在这里留下我的答案,也许有人会觉得它有用。
关于meteor - 我可以指定 Tracker.autorun() 函数所依赖的 session 变量吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35348538/