如何按手柄栏中的索引访问数组项?

2022-08-30 00:00:58

我正在尝试在句柄模板内的数组中指定项目的索引:

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

使用这个:

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

如果上述操作无法实现,我该如何编写一个可以访问数组中某个 spefic 项的帮助程序?


答案 1

试试这个:

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

答案 2

以下内容(在索引前添加一个点)的工作方式与预期一样。此处,当索引后跟另一个属性时,方括号是可选的:

{{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

(get people index)

尽管如果您收到有关索引需要为字符串的错误,请执行以下操作:

(get people (concat index ""))