Javascript Meteor JS:在处理游标时与Meteor JS不一致?

Javascript Meteor JS:在处理游标时与Meteor JS不一致?,javascript,mongodb,meteor,spacebars,Javascript,Mongodb,Meteor,Spacebars,我想我可能在Meteor JS中发现了一些不一致的地方。 首先,这是一个完全可以接受的代码示例,它不会在Meteor JS的模板助手中导致错误: Template.admin_menu_items.helpers({ menuItems: function(){ console.log('inside menuItems'); return MenuItems.find(); }, }) Template.admin_menu_items.helpers({

我想我可能在Meteor JS中发现了一些不一致的地方。 首先,这是一个完全可以接受的代码示例,它不会在Meteor JS的模板助手中导致错误:

Template.admin_menu_items.helpers({
  menuItems: function(){
    console.log('inside menuItems');
    return MenuItems.find();
  },
})
Template.admin_menu_items.helpers({

      menuItems: function(){
        console.log('inside menuItems');

        //return MenuItems.find();
        return Session.get('menu_items');
      },
 })
但是,如果我使用Sessions存储MenuItems.find()的返回值 e、 g

然后使用模板帮助器中会话中存储的对象:

Template.admin_menu_items.helpers({
  menuItems: function(){
    console.log('inside menuItems');
    return MenuItems.find();
  },
})
Template.admin_menu_items.helpers({

      menuItems: function(){
        console.log('inside menuItems');

        //return MenuItems.find();
        return Session.get('menu_items');
      },
 })
我得到以下错误:

Exception from Tracker recompute function:
meteor....ddc0aaf (line 888)
Error: {{#each}} currently only accepts arrays, cursors or falsey values.
meteor....ddc0aaf (line 888)

badSequenceError@http://localhost:3000/packages/observe-sequence.js?0532a9dd76dd78f543eb4d79a1e429df186d8bde:179:1
ObserveSequence.observe/computation</<@http://localhost:3000/packages/observe-sequence.js?0532a9dd76dd78f543eb4d79a1e429df186d8bde:144:1
Tracker.nonreactive@http://localhost:3000/packages/tracker.js?6d0890939291d9780f7e2607ee3af3e7f98a3d9c:593:12
ObserveSequence.observe/computation<@http://localhost:3000/packages/observe-sequence.js?0532a9dd76dd78f543eb4d79a1e429df186d8bde:121:7
Tracker.Computation.prototype._compute@http://localhost:3000/packages/tracker.js?6d0890939291d9780f7e2607ee3af3e7f98a3d9c:327:5
Tracker.Computation.prototype._recompute@http://localhost:3000/packages/tracker.js?6d0890939291d9780f7e2607ee3af3e7f98a3d9c:346:9
Tracker._runFlush@http://localhost:3000/packages/tracker.js?6d0890939291d9780f7e2607ee3af3e7f98a3d9c:485:9
onGlobalMessage@http://localhost:3000/packages/meteor.js?43b7958c1598803e94014f27f5f622b0bddc0aaf:372:11
跟踪器重新计算功能异常: 流星…ddc0aaf(第888行) 错误:{{#each}}当前只接受数组、游标或假值。 流星…ddc0aaf(第888行) badSequenceError@http://localhost:3000/packages/observer sequence.js?0532a9dd76dd78f543eb4d79a1e429df186d8bde:179:1
观察序列。观察/计算在引擎盖下,
会话是一个任务。如果您查看一下,您将看到它通过
EJSON.stringify
序列化其数据

如果您有简单的对象和原语,这很好,但是序列化类实例将剥离其所有方法(函数未序列化)

这解释了为什么存储
获取的结果(文档数组)有效,而存储
查找的结果(游标实例)无效。由于光标的方法已被删除,它的行为不再像光标,空格键将无法在其文档上迭代