【问题标题】:In meteor is there a way to access array index in spacebars [duplicate]在流星中有一种方法可以访问空格键中的数组索引[重复]
【发布时间】:2014-03-15 23:02:24
【问题描述】:

我正在使用流星鲨鱼分支。

有没有办法在空格键中访问每个块助手内的数组索引?

我正在寻找这样的东西。

{{#each humans}}
  {{this.arrayIndex}}
{{/each}}

【问题讨论】:

标签: javascript meteor


【解决方案1】:

取自spacebars documentation

您可以在#each 的主体中使用特殊变量@index 来获取 序列中当前渲染值的从 0 开始的索引。

【讨论】:

    【解决方案2】:

    流星>= 1.2

    空格键在 1.2 中获得了很多功能,包括原生 @index。不再需要助手来解决这个问题 - 你可以简单地这样做:

    <template name="showHumans">
      <ul>
        {{#each humans}}
          <li>{{@index}}: {{name}}</li>
        {{/each}}
      </ul>
    </template>
    

    流星

    我在“动画”一章的meteor book 中看到了一个使用模板助手的类似示例。您可以将map 应用于人类光标,以便添加如下索引:

    Template.showHumans.helpers({
      humans: function() {
        return Humans.find({}, {sort: {hotness: -1}}).map(function(human, index) {
          human.rank = index;
          return human;
        });
      }
    });
    
    <template name="showHumans">
      <ul>
        {{#each humans}}
          <li>{{rank}}: {{name}}</li>
        {{/each}}
      </ul>
    </template>
    

    【讨论】:

    • 喜欢排序热度-1。这可行,但返回的对象内部有一些嵌套数组。这就是我希望从模板访问索引的原因。
    • 哈哈 - 很高兴你喜欢。您是否尝试在光标上执行fetch(),操作子数组,然后将整个数组返回到模板?我不知道该怎么做,因为空格键似乎不支持@index
    • 这很可悲。我不喜欢这种解决方案,但有一种直觉认为这是唯一的出路。在 github 上的模板引擎预览页面中,它说它将支持每个帮助程序的索引,但我想我还得等一等。非常感谢。
    • 排名有效,名称无效。有什么建议吗?
    • 如果您需要一个基于 1 的索引,请创建一个模板助手 Template.registerHelper('count1', function(count) { return count + 1; });,然后像这样使用它...{{count1 @index}} ...在您的空格键模板中。
    【解决方案3】:

    在 Meteor 1.0.2.1 中,您可以执行以下操作:

    {{#each humans}}
      {{this}}
    {{/each}}
    

    这是因为 #each 遍历数组,使得每个循环中的 this 简单地等于当前值。

    【讨论】:

    • 你如何访问#each块内的索引?
    • "this" 没有回答原来的问题。
    • 这个答案已经严重过时了......它错过了OP问题的重点。
    猜你喜欢
    • 2018-10-16
    • 2015-05-04
    • 2017-06-08
    • 2015-06-11
    • 2019-06-24
    • 1970-01-01
    • 2015-08-02
    • 1970-01-01
    相关资源
    最近更新 更多