我想我可能在流星JS中发现了一些不一致。 首先这是不流星JS的模板助手内引起误差的完全可接受的代码的示例:如果我使用会话来存储的MenuItems.find()
例如返回值流星JS:在处理游标时与流星JS不一致?
Template.admin_menu_items.helpers({
menuItems: function(){
console.log('inside menuItems');
return MenuItems.find();
},
})
然而
Template.admin_menu_items.rendered = function(){
var snapshot = MenuItems.find();
Session.set('menu_items', snapshot);
}
然后使用存储在会话中的模板助手对象:
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)
[email protected]://localhost:3000/packages/observe-sequence.js?0532a9dd76dd78f543eb4d79a1e429df186d8bde:179:1
ObserveSequence.observe/computation</<@http://localhost:3000/packages/observe-sequence.js?0532a9dd76dd78f543eb4d79a1e429df186d8bde:144:1
[email protected]://localhost:3000/packages/tracker.js?6d0890939291d9780f7e2607ee3af3e7f98a3d9c:593:12
ObserveSequence.observe/computation<@http://localhost:3000/packages/observe-sequence.js?0532a9dd76dd78f543eb4d79a1e429df186d8bde:121:7
[email protected]://localhost:3000/packages/tracker.js?6d0890939291d9780f7e2607ee3af3e7f98a3d9c:327:5
[email protected]://localhost:3000/packages/tracker.js?6d0890939291d9780f7e2607ee3af3e7f98a3d9c:346:9
[email protected]://localhost:3000/packages/tracker.js?6d0890939291d9780f7e2607ee3af3e7f98a3d9c:485:9
[email protected]://localhost:3000/packages/meteor.js?43b7958c1598803e94014f27f5f622b0bddc0aaf:372:11
,因为我存储不使SENSE在Session内部可接受的返回值MenuItems.find()
并检索它....它应该仍然是检索后的光标.....正确???
这是什么解释?
要强调使用会话来存储值不会更改检索时存储的对象....我试着上面的代码相同,但只有一个数组而不是一个游标...所以这是var snapshot = MenuItems.find().fetch();
而不是var snapshot = MenuItems.find();
并与此不会产生任何错误.......