gpt4 book ai didi

javascript - Node.js Handlebars {{object}} 不在 {{each}} 循环内渲染,而是在循环外渲染(其他 {{object_names}} 在循环内渲染)

转载 作者:行者123 更新时间:2023-11-30 19:40:09 26 4
gpt4 key购买 nike

我正在使用 Express、Node 和 Handlebars,但我无法弄清楚为什么我的 {{object_one}} 不会在 {{each}} 循环中呈现,但它会从内部呈现 {{object_two}} 并且{{object_one}} 在外面。

这是一个例子,因为我不确定我是否描述得很好:

{{#each inline_upsell_amounts}}
<div class="col-4"><a href="{{base_url}}?{{#if inline_ab_refcode}}refcode={{inline_ab_refcode}}&{{/if}}">$ {{this}}</a></div>
{{/each}}

<p>This shows the 'base_url' value: {{base_url}}</p>

因此在循环内 base_url 呈现为空或 ''。 base_url 的值是一个字符串 (url ' http://something.com ' )。

它在 each 循环外正确渲染,{{inline_ab_refcode}} 在循环内也能正确渲染字符串。

我尝试过不同的名称、不同的值、创建一个助手、用 IF 包装。我无法弄清楚我遇到的这个奇怪的错误。

希望这是您能看到的一些愚蠢的东西?!

最佳答案

您错过了一些东西:循环中的 {{base_url}} 与循环外的不一样:在循环中 {{base_url}} 实际上是 {{inline_upsell_amounts.0.base_url}} 或 {{inline_upsell_amounts.1.base_url}} 等等...在它之外它是 {{base_url}}。因为循环的参数变成了新的引用。

您可以做的是引用父项并在循环内使用 {{../base_url}} 并在循环外使用 {{base_url}} 。如果您需要始终相同的引用,您还可以使用 {{@root/base_url}},它始终是根元素的 base_url。

所以你的代码看起来像这样:

{{#each inline_upsell_amounts}}
<div class="col-4"><a href="{{../base_url}}?{{#if inline_ab_refcode}}refcode={{inline_ab_refcode}}&{{/if}}">$ {{this}}</a></div>
{{/each}}

<p>This shows the 'base_url' value: {{base_url}}</p>

我希望我说得够清楚了。

关于javascript - Node.js Handlebars {{object}} 不在 {{each}} 循环内渲染,而是在循环外渲染(其他 {{object_names}} 在循环内渲染),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55484547/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com