8

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

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

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

我想知道是否有等价物。

4

2 回答 2

14

我认为您正在寻找的是这里Tracker.nonreactive(func)描述的功能。根据文档,您需要将一个函数传递给该函数以执行,该函数的结果将由该函数返回。此外,此函数不会关注您自己定义的函数中的任何反应性数据源更新。

我建议像这样重写你的辅助函数:

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
            }
        });
    }
});
于 2015-06-12T01:58:59.393 回答
2

您正在寻找 Tracker.nonreactive (抱歉回答不佳,我正在使用我的手机)。

于 2015-03-22T17:13:35.053 回答