【问题标题】:How Do I Make A Meteor Helper Non-Reactive?如何使 Meteor Helper 无反应?
【发布时间】:2015-05-25 16:12:48
【问题描述】:
我想让这段代码没有反应。有什么办法吗?
Template.foo.helpers({
info: function(){
var user = Meteor.user();
if (user && user.profile)
return user.profile.info;
}
});
我知道有办法当你Foo.find({}, {reactive:false})
我想知道是否有等价物。
【问题讨论】:
标签:
javascript
meteor
meteor-helper
【解决方案1】:
我认为您正在寻找的是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
}
});
}
});
【解决方案2】:
您正在寻找 Tracker.nonreactive(抱歉,我正在使用手机)。