【问题标题】:Blaze Spacebars Each - Preview next and previous itemsBlaze Spacebars Each - 预览下一个和上一个项目
【发布时间】:2016-05-29 22:22:36
【问题描述】:

我有一个助手返回一个名为 game 的对象数组。在我使用的空格键中:每个游戏

我还有用户点击的 selectedGame 的会话。

在模板中,我想显示数组中下一个和上一个游戏的属性。我该怎么做?

到目前为止,似乎可行的是将游戏数组设置为 Session gameArray。然后通过 Session 数组中对象的 id 查找 selectedGame 的索引,然后使用 nextGame 和 previousGame 助手访问那些通过索引 ++/-- 查询该数组的对象。这似乎非常迟钝,并且在尝试设置 Session 并且不想进行多个数据库调用时,我也收到有关参数大小的错误。感谢任何帮助。

【问题讨论】:

    标签: javascript meteor meteor-blaze spacebars


    【解决方案1】:

    如果您使用 Meteor >= 1.2,您可以以某种方式从您的 each 中使用 index 函数,并将其作为上下文传递给您的 each 模板:

    <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>
    

    【讨论】:

    • 这对@boblikesoup 有帮助吗?
    猜你喜欢
    • 2013-02-23
    • 2015-01-08
    • 2015-08-14
    • 1970-01-01
    • 1970-01-01
    • 2012-06-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多