在meteor中进行非反应性呼叫

在meteor中进行非反应性呼叫,meteor,helpers,meteorite,spacebars,Meteor,Helpers,Meteorite,Spacebars,我正在从事流星计划。这个项目相当大,所以我需要扩大规模。我将列出一个简单的例子。我有一个这样的模板 <template name = "test"> <button class="press">press</button> <div> {{#each infos}} {{this.name}} {{this.age}} {{/each}} </div> &

我正在从事流星计划。这个项目相当大,所以我需要扩大规模。我将列出一个简单的例子。我有一个这样的模板

<template name = "test">
    <button class="press">press</button>
    <div>
        {{#each infos}}
            {{this.name}} {{this.age}}
        {{/each}}

    </div>
</template>

按
{{{#每个信息}
{{this.name}{{this.age}
{{/每个}}
所以我们知道,每当“infos”集合发生更改时,它都会自动反映在我的模板中。但我希望这个模板是非反应性的

也就是说,当第一次加载页面时,它应该显示Mongo中的所有“姓名”和“年龄”详细信息。之后,即使在集合“info”中进行了更改,也不应反映在模板中

我知道这听起来很奇怪。但是有没有办法做到这一点呢。比如在页面首先加载时调用ajax,而不使用find()等。 任何建议都是可以接受的


并提前感谢你们所有人

不知道这是一个最好的解决方案,还是不试试这个

使用
非反应订阅

文件:


您的助手可以使用非反应式。从文档中:

对集合的任何更改都会触发重新计算,从而更改游标中的文档。要禁用此行为,请将{reactive:false}作为查找的选项传递

下面是
infos
helper的示例实现:

Template.test.helpers({
infos:function(){
返回Infos.find({},{reactive:false});
}
});

@avishek我推荐这个答案,大卫,谢谢。但是我想第一次显示数据。上述sol使其完全无反应,甚至第一次不显示数据。此解决方案假设订阅数据在模板助手运行之前已准备就绪。如果您使用的是iron router,您可能可以通过在呈现包含此模板的路由之前等待订阅来解决此问题。
Tracker.nonreactive(function(){
   Meteor.subscribe("infos");
})