0

解决了。结果完全是另外一回事。感谢所有试图帮助的人,你们统治!

4

2 回答 2

2

我会在这里猜测,但需要查看您的代码以确保我给您一个好的答案:-)。您无法阻止响应式数据源触发失效,但您可以在非响应式回调中运行一些代码以确保代码不会重新运行。

这里有两个例子来说明正在发生的事情。

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 回调中。

于 2013-08-04T06:06:59.667 回答
0

你看到这个问题的答案了吗?听起来像你在找什么

Meteor.js - 暂时阻止模板重新渲染(禁用反应性)

于 2013-08-04T00:45:29.197 回答