以下是一些具有我正在处理的结构的示例数据:
{ 'Employee Info':
{ 'Last Bonus Date': '1999-01-01',
'Manager Name': 'Doe, John',
PIN: '00000',
'Salary Basis': 'test' }
我已经设法弄清楚了如何访问模板中的"Employee Info"键,方法是使用不带引号的括号执行以下操作。除了在模板中显示Object Object之外,这显然没有给我任何有用的东西,但这只是一个开始:
<ul>
<li>
Manager Name: {{[Employee Info]}}
</li>
</ul>
<ul>
现在,我试图实现的是非常直接的,我想首先访问"员工信息",然后访问它的一个值([employee info][Manager Name]])
,但我尝试过的方法似乎还没有奏效。我要处理的大多数数据在键中都有空格。即使尝试访问没有任何空格的"PIN"也不会起作用。
我试过了。。
{{[Employee Info].pin}}
{{[Employee Info][pin]}}
{{[Employee Info].[pin]}}
您的问题不是由于键中的空白引起的。正如您所识别的,您可以通过将属性名称括在方括号中(例如[Employee Info]
(来访问具有无效标识符的属性。
实际问题是Handlebars不允许您以prop1.prop2
的形式深度访问Object属性。相反,您需要指示Handlebars使用Employee Info
处的Object作为列表项的上下文。实现这一点的一种方法是使用#with
内置助手。
您更新后的模板将变为:
<ul>
{{#with [Employee Info]}}
<li>Manager Name: {{[Manager Name]}}</li>
<li>Last Bonus Date: {{[Last Bonus Date]}}</li>
<li>PIN: {{[PIN]}}</li>
<li>Salary Basis: {{[Salary Basis]}}</li>
{{/with}}
<ul>
我制作了一把小提琴供你参考。