如何通过手柄中的索引访问访问数组项目?
我试图指定一个数组中的一个项目在一个句柄模板的索引:
{ 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>