Handlebars - 如何访问 "each" 范围内的模板数据?
Handlebars - How to access template data in "each" scope?
我使用预编译的 Handlebars 模板。
我有以下代码:
<div id="{{ns}}paymentMethodsTabs">
{{#each paymentMethods}}
<button id="{{ns}}{{paymentCardCode}}">{{paymentCardCode}}</button>
{{/each}}
</div>
在第一个 div
中,ns
模板数据可用并已设置。
但是在 each paymentMethods
范围内,我无法访问它,我试过
<button id="{{../ns}}{{paymentCardCode}}">{{paymentCardCode}}</button>
但是也没用。 (在那种情况下,模板 returns null
而不是 HTML 代码,我想那是因为它无法以某种方式找到引用,但我没有收到任何错误消息,它是真的很难调试,有什么建议吗?当我 运行 Handlebars.templates[path](data)
)
我如何运行 each
循环并提供模板数据?
以下是我提供给模板的数据:
{
"ns": 'main-layout-default-',
"paymentMethods": [{
"paymentCardCode": "CB",
"contractId": "1234"
}]
}
问题就在这里,
{
"ns": 'main-layout-default-', // <= missing comma
"paymentMethods": [{
"paymentCardCode": "CB",
"contractId": "1234"
}]
}
"ns" 在 "paymentMethods" 之外。它不能超出它的范围。
{
"ns": 'main-layout-default-',
"paymentMethods": [{
"paymentCardCode": "CB",
"contractId": "1234"
}]
}
尝试
{
"paymentMethods": [{
"ns": 'main-layout-default-',
"paymentCardCode": "CB",
"contractId": "1234"
}]
}
否则,如果所有生成数据的 "ns" 值都相同,则尝试
<button id="main-layout-default-{{paymentCardCode}}">{{paymentCardCode}}</button>
这是图书馆的不匹配。我的代码是由 handlebars 3.0 版本生成的,但我使用的是运行时 2.0,这就是它失败的原因。
所以解决方案确实如下:
<div id="{{ns}}paymentMethodsTabs">
{{#each paymentMethods}}
<button id="{{../ns}}{{paymentCardCode}}">{{paymentCardCode}}</button>
{{/each}}
</div>
感谢帮助我的@kpdecker。 https://github.com/wycats/handlebars.js/issues/1011#issuecomment-96694058
我使用预编译的 Handlebars 模板。 我有以下代码:
<div id="{{ns}}paymentMethodsTabs">
{{#each paymentMethods}}
<button id="{{ns}}{{paymentCardCode}}">{{paymentCardCode}}</button>
{{/each}}
</div>
在第一个 div
中,ns
模板数据可用并已设置。
但是在 each paymentMethods
范围内,我无法访问它,我试过
<button id="{{../ns}}{{paymentCardCode}}">{{paymentCardCode}}</button>
但是也没用。 (在那种情况下,模板 returns null
而不是 HTML 代码,我想那是因为它无法以某种方式找到引用,但我没有收到任何错误消息,它是真的很难调试,有什么建议吗?当我 运行 Handlebars.templates[path](data)
)
我如何运行 each
循环并提供模板数据?
以下是我提供给模板的数据:
{
"ns": 'main-layout-default-',
"paymentMethods": [{
"paymentCardCode": "CB",
"contractId": "1234"
}]
}
问题就在这里,
{
"ns": 'main-layout-default-', // <= missing comma
"paymentMethods": [{
"paymentCardCode": "CB",
"contractId": "1234"
}]
}
"ns" 在 "paymentMethods" 之外。它不能超出它的范围。
{
"ns": 'main-layout-default-',
"paymentMethods": [{
"paymentCardCode": "CB",
"contractId": "1234"
}]
}
尝试
{
"paymentMethods": [{
"ns": 'main-layout-default-',
"paymentCardCode": "CB",
"contractId": "1234"
}]
}
否则,如果所有生成数据的 "ns" 值都相同,则尝试
<button id="main-layout-default-{{paymentCardCode}}">{{paymentCardCode}}</button>
这是图书馆的不匹配。我的代码是由 handlebars 3.0 版本生成的,但我使用的是运行时 2.0,这就是它失败的原因。
所以解决方案确实如下:
<div id="{{ns}}paymentMethodsTabs">
{{#each paymentMethods}}
<button id="{{../ns}}{{paymentCardCode}}">{{paymentCardCode}}</button>
{{/each}}
</div>
感谢帮助我的@kpdecker。 https://github.com/wycats/handlebars.js/issues/1011#issuecomment-96694058