Javascript Node.js handlebar{{object}}不在{{each}循环内渲染,而是在循环外渲染(其他{object_name}在循环内渲染)

Javascript Node.js handlebar{{object}}不在{{each}循环内渲染,而是在循环外渲染(其他{object_name}在循环内渲染),javascript,node.js,handlebars.js,Javascript,Node.js,Handlebars.js,我正在使用Express、Node和handlebar,我不明白为什么我的{{object\u one}}不会在{each}循环中渲染,但它会从内部和外部渲染{{object\u one}} 这是一个例子,因为我不确定我是否描述得很好: {{#each inline_upsell_amounts}} <div class="col-4"><a href="{{base_url}}?{{#if inline_ab_refcode}}refcode={{inline_ab_refc

我正在使用Express、Node和handlebar,我不明白为什么我的{{object\u one}}不会在{each}循环中渲染,但它会从内部和外部渲染{{object\u 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呈现为空或“”。基本url的值是一个字符串(url“”)

它在每个循环的外部呈现正确,并且{{inline_ab_refcode}}字符串在循环内部呈现良好

我尝试了不同的名称、不同的值、制作助手、使用IF包装。我想不出我有什么奇怪的毛病


希望你能看到一些愚蠢的东西

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

您可以做的是引用父项并在循环内使用{../base\u url}},在循环外使用{{base\u 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>
{{{#每个内联销售金额}
{{/每个}}
这显示了'base_url'值:{{base_url}}


我希望我已经说得够清楚了。

谢谢你,这起作用了!在每个循环示例的把手中,我没有看到../文件夹类型的对象访问