Handlebars:访问键中有空格的嵌套对象



以下是一些具有我正在处理的结构的示例数据:

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

我制作了一把小提琴供你参考。

最新更新