我试图在一个句柄模板中的数组中指定一个项目的索引:
{
people: [
{"name":"Yehuda Katz"},
{"name":"Luke"},
{"name":"Naomi"}
]
}
用这个:
<ul id="luke_should_be_here">
{{people[1].name}}
</ul>
如果上面是不可能的,我将如何编写一个助手,可以访问数组中的特定项目?
我试图在一个句柄模板中的数组中指定一个项目的索引:
{
people: [
{"name":"Yehuda Katz"},
{"name":"Luke"},
{"name":"Naomi"}
]
}
用这个:
<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中的手柄测试)
2.xx更新
现在你可以使用get helper来完成以下操作:
(get people index)
尽管如果你得到一个关于索引需要是字符串的错误,请执行:
(get people (concat index ""))
其他回答
下面的代码,在索引前加一个点,就像预期的那样工作。在这里,当索引后跟另一个属性时,方括号是可选的:
{{people.[1].name}}
{{people.1.name}}
但是,在下列情况下需要使用方括号:
{{#with people.[1]}}
{{name}}
{{/with}}
在后者中,使用不带方括号的索引号将得到一个:
Error: Parse error on line ...:
... {{#with people.1}}
-----------------------^
Expecting 'ID', got 'INTEGER'
顺便说一句:括号(也)用于段-文字语法,用于引用实际的标识符(而不是索引号),否则这些标识符将无效。更多详细信息请参见“什么是有效标识符?”
(用YUI中的手柄测试)
2.xx更新
现在你可以使用get helper来完成以下操作:
(get people index)
尽管如果你得到一个关于索引需要是字符串的错误,请执行:
(get people (concat index ""))
试试这个:
<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 obj[key]}}
...
{{/each}}
你需要做的是:
{{#each (lookup obj key)}}
...
{{/each}}
参见句柄查找助手和句柄子表达式。
如果数组没有被命名(只有数组被传递给模板),也可以使用下面的语法:
<ul id="luke_should_be_here">
{{this.1.name}}
</ul>