3

現在、次のようなコードがあります。

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コンソールがメッセージの 1 つを出力するだけであるため、このコードは失敗しbarます。

関数を異なる自動実行関数に分離する代わりに、「トラッカー」に追跡しないように指示するか、可能であれば再計算を開始したもの尋ねるfoo こと barによって、これをTracker.autorun()実行barしたいと考えています。どの変数が変更されたかを手動で監視することによって。barTrackerSession

4

3 に答える 3

2

このアプローチはどうですか?

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")
});

アップデート。 ああ、なるほど、あなたはすでに解決策を見つけています。とにかく、ここに答えを残しておきます。誰かが役に立つと思うかもしれません。

于 2016-02-20T14:29:41.870 に答える
-1

自動実行機能を分割できます。

Tracker.autorun(function() {
    var foo = Session.get("foo")
    // will run when foo changes
}


Tracker.autorun(function() {
    var bar = Session.get("bar")
    // will run when bar changes
}
于 2016-02-11T22:30:14.390 に答える