Javascript Meteor.js:返回光标的非反应性快照

Javascript Meteor.js:返回光标的非反应性快照,javascript,mongodb,meteor,cursor,snapshot,Javascript,Mongodb,Meteor,Cursor,Snapshot,我当前正在从助手返回一个来自Meteor.users的光标 Javascript控制器: Template.rtcCarousel.helpers({ rtcUsers: function() { if (Session.get("rtcSettings")) { let cursor = Modules.both.query.getRTCUsers(Session.get("rtcSettings"), 20); cursor.observe({

我当前正在从助手返回一个来自Meteor.users的光标

Javascript控制器:

Template.rtcCarousel.helpers({
  rtcUsers: function() {
    if (Session.get("rtcSettings"))
    {
      let cursor = Modules.both.query.getRTCUsers(Session.get("rtcSettings"), 20);

      cursor.observe({
        added: ( item ) => {
          if (Session.get('viewMode') == 1)
          {
            // my css animation stuff here
          }
        }
      });

      return cursor;
    }
  }
});
<template name="rtcCarousel">
  {{#each $mapped rtcUsers}}
    <div>
      {{> rtcucard}}
    </div>
  {{/each}}
</template>
HTML视图:

Template.rtcCarousel.helpers({
  rtcUsers: function() {
    if (Session.get("rtcSettings"))
    {
      let cursor = Modules.both.query.getRTCUsers(Session.get("rtcSettings"), 20);

      cursor.observe({
        added: ( item ) => {
          if (Session.get('viewMode') == 1)
          {
            // my css animation stuff here
          }
        }
      });

      return cursor;
    }
  }
});
<template name="rtcCarousel">
  {{#each $mapped rtcUsers}}
    <div>
      {{> rtcucard}}
    </div>
  {{/each}}
</template>

{{{#每个$users}
{{>rtcucard}
{{/每个}}
关键是,我的视图可以在两种模式之间切换:我希望光标在模式1中更改以触发一些cs动画,而在模式2中不执行任何操作。我的意思是:如果因为#每个接收我的助手的文档都被添加或删除,我甚至不希望视图被重新呈现

我该怎么处理?如何确保光标不会在模式2中更改?我希望它在返回时像非反应性快照一样返回

我想我需要一些会话值来自动重新计算helper,然后我可以做一些棘手的事情,比如获取光标,快照id,然后用一个只匹配此id文档的新查询切换返回的光标,然后等待会话切换回正常的反应性用例,但这将是非常棘手的

在Meteor中难道没有一种方法可以捕捉光标的状态吗


谢谢你的指导

您有两种可能的选择

第一个是使用

第二个是禁用


或者两者的结合取决于您的用例。我会说选择组合,因为在你的助手中,你有
会话
,它本身是被动的。然后调用一个游标,它也是被动的。因此,根据上下文的不同,您可能会在反应性方面受到其中一种或另一种的影响。

indeds,它们都完成了一半的工作,这种组合对我来说应该是完美的。谢谢你,伙计!:)