Templates 把手:访问关键帧中带有空白的嵌套对象

Templates 把手:访问关键帧中带有空白的嵌套对象,templates,handlebars.js,Templates,Handlebars.js,以下是我正在处理的结构的一些示例数据: { 'Employee Info': { 'Last Bonus Date': '1999-01-01', 'Manager Name': 'Doe, John', PIN: '00000', 'Salary Basis': 'test' } 我已经设法弄明白了如何通过执行以下操作来访问模板中的“Employee Info”键,方法是使用括号(不带引号)。除了在模板中显示对象之外,这显然没有给我任何有用的东西,但这只是

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

{ 'Employee Info':
   { 'Last Bonus Date': '1999-01-01',
     'Manager Name': 'Doe, John',
     PIN: '00000',
     'Salary Basis': 'test' }
我已经设法弄明白了如何通过执行以下操作来访问模板中的“Employee Info”键,方法是使用括号(不带引号)。除了在模板中显示对象之外,这显然没有给我任何有用的东西,但这只是一个开始:

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

实际问题是,Handlebar不允许您以
prop1.prop2
的形式深度访问对象属性。相反,您需要指示把手使用
Employee Info
处的对象作为列表项的上下文。一种方法是使用

更新后的模板将成为:

<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>
    {{{与[员工信息]}
  • 管理者名称:{{[管理者名称]}
  • 上次奖金日期:{{[上次奖金日期]}
  • 引脚:{{[PIN]}
  • 薪资基础:{{[薪资基础]}
  • {{/与}}
我已经创建了一个供您参考的