Handlebars - 将变量传递给点符号
Handlebars - Pass variable into a dot notation
我正在尝试重用一个名为 rater-table.hbs
的部分,它看起来像这样
<div class="comparison-rater-container">
{{> rater-table header="Key Stakeholder" valueType=KeyStakeholder}}
{{> rater-table header="Group 1" valueType=Group1}}
{{> rater-table header="Group 2" valueType=Group2}}
{{> rater-table header="Other Stakeholders" valueType=OtherStakeholders}}
</div>
在我的其他文件中,我可以很好地调用 header 变量,但我无法让 valueType 适合括号表示法。我正在尝试像这样使用它
{{ ../pole.summary.benefits.[(valueType)] }}
如果我对 Group1 一词进行硬编码,它可以正常工作,否则它会给我一个空值。有什么方法可以让它在车把上工作吗?
在 Handlebars 中的对象上查找动态 属性 的方法是使用 lookup helper。这看起来像:
{{lookup ../pole.summary.benefits valueType }}
但是,查找需要一个字符串值,该字符串值将是 属性 以查找作为第一个参数的对象。出于这个原因,您需要确保将您分配给 valueType
的每个值都用引号引起来。如果没有引号,Handlebars 将尝试将这些中的每一个评估为当前上下文对象的属性,并且它们最终都会将 valueType=undefined
传递给部分。
模板必须变成:
<div class="comparison-rater-container">
{{> rater-table header="Key Stakeholder" valueType="KeyStakeholder"}}
{{> rater-table header="Group 1" valueType="Group1"}}
{{> rater-table header="Group 2" valueType="Group2"}}
{{> rater-table header="Other Stakeholders" valueType="OtherStakeholders"}}
</div>
或者,您可以放弃查找,直接将每个值传递给部分值:
{{> rater-table header="Key Stakeholder" value=../pole.summary.benefits.KeyStakeholder }}
我创建了一个fiddle供参考。
我正在尝试重用一个名为 rater-table.hbs
的部分,它看起来像这样
<div class="comparison-rater-container">
{{> rater-table header="Key Stakeholder" valueType=KeyStakeholder}}
{{> rater-table header="Group 1" valueType=Group1}}
{{> rater-table header="Group 2" valueType=Group2}}
{{> rater-table header="Other Stakeholders" valueType=OtherStakeholders}}
</div>
在我的其他文件中,我可以很好地调用 header 变量,但我无法让 valueType 适合括号表示法。我正在尝试像这样使用它
{{ ../pole.summary.benefits.[(valueType)] }}
如果我对 Group1 一词进行硬编码,它可以正常工作,否则它会给我一个空值。有什么方法可以让它在车把上工作吗?
在 Handlebars 中的对象上查找动态 属性 的方法是使用 lookup helper。这看起来像:
{{lookup ../pole.summary.benefits valueType }}
但是,查找需要一个字符串值,该字符串值将是 属性 以查找作为第一个参数的对象。出于这个原因,您需要确保将您分配给 valueType
的每个值都用引号引起来。如果没有引号,Handlebars 将尝试将这些中的每一个评估为当前上下文对象的属性,并且它们最终都会将 valueType=undefined
传递给部分。
模板必须变成:
<div class="comparison-rater-container">
{{> rater-table header="Key Stakeholder" valueType="KeyStakeholder"}}
{{> rater-table header="Group 1" valueType="Group1"}}
{{> rater-table header="Group 2" valueType="Group2"}}
{{> rater-table header="Other Stakeholders" valueType="OtherStakeholders"}}
</div>
或者,您可以放弃查找,直接将每个值传递给部分值:
{{> rater-table header="Key Stakeholder" value=../pole.summary.benefits.KeyStakeholder }}
我创建了一个fiddle供参考。