解决。 事实证明这完全是另一回事。 感谢所有想要帮助的人,你们要统治!
答案 0 :(得分:2)
我会在这里猜测,但需要看看你的代码,以确保我给你一个很好的答案:-)。您无法阻止被动数据源触发失效,但您可以在非反应性回调中运行某些代码,以确保代码 NOT 重新运行。
这里有两个例子来说明正在发生的事情。
Template.myTemplate.helpers({
post: function () {
var someReactiveVar = Session.get('value');
return Posts.findOne({_id: 5});
}
});
在上面的示例中,对post 5或Session的值的更改将触发模板重新运行。假设我们希望模板仅针对帖子的更改重新运行,而不是针对会话变量重新运行。我们可以这样做:
Template.myTemplate.helpers({
post: function () {
var someNonReactiveVar = Deps.nonreactive(function () { return Session.get('value'); });
return Post.findOne({_id: 5});
}
});
现在,仅仅因为我们调用Session.set('value','some other value')模板将不会重新运行,因为我们将get调用包装在Deps.nonreactive回调中。
答案 1 :(得分:0)
您是否看到过这个问题的答案?听起来像你在寻找什么
Meteor.js - temporarily prevent a template from re-rendering (disable reactivity)