Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/linq/3.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
Twig 无法访问全局数据或宏中的宏_Twig_Patternlab.io - Fatal编程技术网

Twig 无法访问全局数据或宏中的宏

Twig 无法访问全局数据或宏中的宏,twig,patternlab.io,Twig,Patternlab.io,我是patternlab的新手,正在将基于php的项目迁移到节点版本。 我在访问块文件中的全局数据和块时遇到问题,这是我以前没有遇到的 我正在Mac上使用Pattern Lab Node v3.0和Node v13.9.0,使用的是带有Twig的Gulp版本 source/_data/data.json source/macros/ui.twig source/macros/blocks.twig 预期行为 生成的html应如下所示: <p class="icon"><img

我是patternlab的新手,正在将基于php的项目迁移到节点版本。 我在访问块文件中的全局数据和块时遇到问题,这是我以前没有遇到的

我正在Mac上使用Pattern Lab Node v3.0和Node v13.9.0,使用的是带有Twig的Gulp版本

source/_data/data.json

source/macros/ui.twig

source/macros/blocks.twig

预期行为 生成的html应如下所示:

<p class="icon"><img src="airplay.png"/></p>
<p class="output">../../images/1536x864_16x9.jpg</p>
<p class="icon2"><img src="airplay.png"/></p>
<p class="output2">../../images/1536x864_16x9.jpg</p>
<p class="icon"><img src="airplay.png"/></p>
<p class="output">../../images/1536x864_16x9.jpg</p>
<p class="icon2"></p>
<p class="output2"></p>
实际行为 生成的html如下所示:

<p class="icon"><img src="airplay.png"/></p>
<p class="output">../../images/1536x864_16x9.jpg</p>
<p class="icon2"><img src="airplay.png"/></p>
<p class="output2">../../images/1536x864_16x9.jpg</p>
<p class="icon"><img src="airplay.png"/></p>
<p class="output">../../images/1536x864_16x9.jpg</p>
<p class="icon2"></p>
<p class="output2"></p>

欢迎任何帮助

宏有自己的变量范围。如果要访问任何其他定义的变量,需要传递特殊变量\u上下文

{%foobar宏,上下文%} {{bar}} {{context['foo']} {%endmacro%} {%import\u self as macros%} {{macros.foo42,_context}
-

哦,这似乎很管用,谢谢!我想没有办法隐式调用宏foo的_上下文?不,必须显式传递变量OK!最后一个问题:如何访问宏中包含的全局变量?我不想使用with,因为我正在尝试在include中定义默认值with或default to global varn宏中传递的变量上下文将在include中可访问,因此写入{{context['my_var']}}应该可以。看到了吧,汉克斯有很多黑皮肤!
<p class="icon"><img src="airplay.png"/></p>
<p class="output">../../images/1536x864_16x9.jpg</p>
<p class="icon2"><img src="airplay.png"/></p>
<p class="output2">../../images/1536x864_16x9.jpg</p>
<p class="icon"><img src="airplay.png"/></p>
<p class="output">../../images/1536x864_16x9.jpg</p>
<p class="icon2"></p>
<p class="output2"></p>