如何使流星助手不反应?

时间:2015-03-22 17:01:42

标签: javascript meteor meteor-helper

我想让这段代码无反应。有办法吗?

Template.foo.helpers({
    info: function(){
        var user = Meteor.user();
            if (user && user.profile)
                return user.profile.info;
    }
});

我知道当你Foo.find({}, {reactive:false})

时有一种方法

我想知道是否有同等的。

2 个答案:

答案 0 :(得分:11)

我认为你要找的是Tracker.nonreactive(func)函数描述here。根据文档,您需要将一个函数传递给要执行的函数,并且该函数将返回该函数的结果。此外,此功能不会关注您自己定义的函数中的任何被动数据源更新。

我建议你重写你的帮助函数:

Template.foo.helpers({
    info: function() {
        return Tracker.nonreactive(function() {
            var user = Meteor.user();
            if(user && user.profile) {
                return user.profile.info;
            } else {
                // return some other appropriate value if the if-statement above
                // is not fulfilled
            }
        });
    }
});

答案 1 :(得分:2)

您正在寻找Tracker.nonreactive(对不起答案很糟糕,我正在使用我的手机)。