meteor - 我可以指定 Tracker.autorun() 函数所依赖的 session 变量吗?

标签 meteor meteor-tracker

我目前有一段类似这样的代码:

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更改,我想通过告诉“Tra​​cker”不要跟踪来做到这一点 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/

相关文章:

javascript - 我使用的是 Iron :router v1. 0.7 但 this.render() 是 "undefined"。我看不出我做错了什么

javascript - 追踪器 : why remove computation when invalidated?

javascript - meteor 在哪里放置全局tracker.autorun

javascript - 如何等待 meteor.helper 中的计算,直到由于 template.autorun 中的依赖项更改而重新计算?

javascript - Meteor simple todos server/main.js 和 client/main.js 有什么区别?

javascript - 如何获取数组的内容以反射(reflect)在我的模板中?

Meteor.autorun与Tracker.autorun?

javascript - 如何在静态非 Meteor 页面中使用 Tracker.autorun?

javascript - 在 meteor 模板之间传递多个参数

java - 来自 http 调用和表单的 Meteor 动态模板