Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/337.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript js-在each循环、if语句和子对象中获取父上下文_Javascript_Handlebars.js - Fatal编程技术网

Javascript js-在each循环、if语句和子对象中获取父上下文

Javascript js-在each循环、if语句和子对象中获取父上下文,javascript,handlebars.js,Javascript,Handlebars.js,我知道如何在车把内横切数据源,但我偶然发现了一种无法解决的情况 使用“./”可以访问父模板作用域,但在遍历对象的子对象时,它似乎返回的是对象而不是子对象 {{#each content.items}} {{#if prop}} <p>{{prop}} + {{../../variable}}</p> {{/if}} {{/each}} {{{#每个content.items} {{{#if prop}} {{prop}}+{{.././变量} {{/if} {{/每个}

我知道如何在车把内横切数据源,但我偶然发现了一种无法解决的情况

使用“./”可以访问父模板作用域,但在遍历对象的子对象时,它似乎返回的是对象而不是子对象

{{#each content.items}}
{{#if prop}}
<p>{{prop}} + {{../../variable}}</p>
{{/if}}
{{/each}}
{{{#每个content.items}
{{{#if prop}}
{{prop}}+{{.././变量}

{{/if} {{/每个}}
如果您迭代一个名为“content”的对象,上面的代码片段可以正常工作,但一旦您迭代它的子对象“content.items”,它就不再返回正确的范围

这里有一把小提琴来说明这个问题


有人能解释出什么是错的吗?

原来我原来的想法是错的。我只在Ember.js的上下文中使用了handlebar.js。余烬提供了一些普通车把无法提供的额外助手,因此这不是一个选项。但我似乎明白了你的问题。检查

内容中的

{{{有内容} {{{#每项} {{{#if prop}} {{prop}}+{{.././变量}

{{/if} {{/每个}} {{/与}} 外部内容

{{{#每项} {{{#if prop}} {{prop}}+{{.././变量}

{{/if} {{/每个}}

我不知道为什么它一开始不起作用,但是使用
助手,然后
每个
助手似乎都起作用了。希望我已经接近您想要的了。

我不完全确定您当前的代码是怎么回事,但是一个简单的解决方案是使用
{{{with}}
帮助程序保存外部范围。它可能也更容易阅读。GJK-如果你想在答案中演示,我会这样标记。听起来有点像我需要的
#如果
创建了一个新的嵌套,那么我能想到的唯一一件事就是它从父嵌套中跳出到它的正上方。我不确定它是否回答了你的问题,但对于后代来说,在路径中添加#if嵌套和内容嵌套似乎是可行的<代码>{{prop}}+{{.././content/variable}}

<p>IN CONTENT</p>
{{#with content}}
{{#each items}}
{{#if prop}}
<p>{{prop}} + {{../../variable}}</p>
{{/if}}
{{/each}}
{{/with}}
<p>OUTSIDE CONTENT</p>
{{#each items}}
{{#if prop}}
    <p>{{prop}} + {{../../variable}}</p>
{{/if}}
{{/each}}