javascript - Blaze Spacebars Each - 预览下一个和上一个项目

标签 javascript meteor meteor-blaze spacebars

我有一个助手返回一个名为 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/

相关文章:

meteor - 三重括号 XSS 在 Meteor 中安全吗?

javascript - IronRouter waitOn、数据和 onAfterAction 困惑

javascript - google.com 如何将选项卡焦点放在不可聚焦的元素上

javascript - 使用 PHP 网络爬虫查找没有特定元素的特定单词

javascript - 逆向工程/定制 Meteor LocalMarket 示例应用程序

node.js - nodeJS-Express 或 Meteor 或 Derby

javascript - 比较空格键 {{#if}} block 中的模板助手值

javascript - 如何在 html5 中仅将 <base> 标记用于特定的 anchor 标记

javascript - 使用 requirejs 加载 mustache

meteor - 读取 session 变量而不使上下文无效