我试图在一个句柄模板中的数组中指定一个项目的索引:

{
  people: [
    {"name":"Yehuda Katz"},
    {"name":"Luke"},
    {"name":"Naomi"}
  ]
}

用这个:

<ul id="luke_should_be_here">
{{people[1].name}}
</ul>

如果上面是不可能的,我将如何编写一个助手,可以访问数组中的特定项目?


当前回答

如果你想第一个/最后一个取,请试试这个。

{{#each list}}

    {{#if @first}}
        <div class="active">
    {{else}}
        <div>
    {{/if}}

{{/each}}


{{#each list}}

    {{#if @last}}
        <div class="last-element">
    {{else}}
        <div>
    {{/if}}

{{/each}}

其他回答

{{#each array}}
  {{@index}}
{{/each}}

如果数组没有被命名(只有数组被传递给模板),也可以使用下面的语法:

  <ul id="luke_should_be_here">
  {{this.1.name}}
  </ul>

如果你想使用动态变量

这行不通:

{{#each obj[key]}}
...
{{/each}}

你需要做的是:

{{#each (lookup obj key)}}
...
{{/each}}

参见句柄查找助手和句柄子表达式。

如果你想第一个/最后一个取,请试试这个。

{{#each list}}

    {{#if @first}}
        <div class="active">
    {{else}}
        <div>
    {{/if}}

{{/each}}


{{#each list}}

    {{#if @last}}
        <div class="last-element">
    {{else}}
        <div>
    {{/if}}

{{/each}}

当你在每个数组中循环时,如果你想在当前项的上下文中访问另一个数组,你可以这样做。

下面是示例数据。


[
  {
    name: 'foo',
    attr: [ 'boo', 'zoo' ]
  },
  {
    name: 'bar',
    attr: [ 'far', 'zar' ]
  }
]

下面是获取attr数组中第一项的把手。

{{#each player}}
  <p> {{this.name}} </p>

  {{#with this.attr}}
    <p> {{this.[0]}} </p>
  {{/with}}

{{/each}}

这将输出

<p> foo </p>
<p> boo </p>

<p> bar </p>
<p> far </p>