我有一个助手返回一个名为 game 的对象数组。在我使用的空格键中:每场比赛
我还有用户点击的 selectedGame 的 session 。
在模板中,我想在数组中显示下一个和上一个游戏的属性。我该怎么做?
目前看来可行的方法是将游戏数组设置为 session gameArray。然后通过 Session 数组中对象的 id 查找 selectedGame 的索引,然后使用 nextGame 和 previousGame 助手来访问那些通过索引++/-- 查询该数组的对象。这看起来非常迟钝,而且我在尝试设置 session 时也遇到了关于参数大小的错误并且不想进行多个数据库调用。感谢任何帮助。
最佳答案
如果您使用 Meteor >= 1.2,您可以以某种方式从您的每个模板中使用索引函数,并将其作为上下文传递给您的每个模板:
<template name="main">
{{#each iterateMe}}
{{> iteratee i=@index}}
{{/each}}
</template>
然后你可以注册一个助手:
Handlebars.registerHelper('isNextOrPrev', function(val){
var x = Session.get("selectedGame");
if (!!val && typeof val == "number" && (val == (x-1) || val == (x+1)) )
return true;
return false;
});
并检查模板中的助手
<template name="iteratee">
{{#if isNextOrPrev i}}
<!--SHOW ADDITIONAL PROPERTIES HERE-->
{{/if}}
</template>
关于javascript - Blaze Spacebars Each - 预览下一个和上一个项目,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35469833/