如何通过手柄中的索引访问访问数组项目?

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

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

使用这个:

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

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

尝试这个:

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

以下是索引前的一个额外的点 ,正如预期的那样工作。 这里,当索引后面跟着另一个属性时,方括号是可选的:

 {{people.[1].name}} {{people.1.name}} 

但是,方括号需要在:

 {{#with people.[1]}} {{name}} {{/with}} 

在后者中,使用没有方括号的索引号将得到一个:

 Error: Parse error on line ...: ... {{#with people.1}} -----------------------^ Expecting 'ID', got 'INTEGER' 

顺便说一下:括号(也)用于段语法的语法 ,用于引用本来是无效的实际标识符(而不是索引号)。 更多详细信息什么是有效的标识符?

(用YUI的把手进行testing)

如果没有logging的function不是你的游戏,那么可以在这里完成相同的function:

 Handlebars.registerHelper('index_of', function(context,ndx) { return context[ndx]; }); 

然后在模板中

 {{#index_of this 1}}{{/index_of}} 

在我掌握之前,我写了上面的内容

 this.[0] 

如果你不写自己的帮手,我看不出你的手柄太远了。

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

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

这里是示例数据。


 [
   {
    名字:'foo',
     attr:['boo','zoo']
   },
   {
    名称:“酒吧”,
     attr:['far','zar']
   }
 ]

这里是获取attr数组中的第一个项目的attr

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

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

 {{/每}}

这将输出

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

 <p>栏</ p>
 </ p> </ p>

如果你想使用dynamicvariables

这不会工作:

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

你需要做的是:

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

看看把手查找帮手和把手子expression式 。

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

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

如果数组未被命名(只是将数组传递给模板),还可以使用以下语法:

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