我正在使用twig Pattern Lab包含了较长的语法(由于集成原因需要),又名{% include "@atoms/path/to/pattern.twig" %}
。
如果我在模式中定义了变量,然后将该模式包含在另一个模式中,则包含的模式的变量将设置为null
,除非我使用with
传入新的上下文。
例如:
我原子
<p>{{ myvar }}</p> {# myvar is set when viewing my-atom directly #}
我分子
<div>{% include "@atoms/my-atom/my-atom.twig" %}</div> {# Prints an empty <p> tag #}
<div>{% include "@atoms/my-atom/my-atom.twig" with { myvar: "Hello!" } %}</div> {# Prints "<p>Hello!</p>" #}
我希望分子中的变量向下流到原子,如果变量未在分子中定义,则回落到原子的值,类似于短手语法的工作方式(aka,{{1} })。
这是一个功能吗?一个bug?有什么我想念的吗?
提前非常感谢!
答案 0 :(得分:1)
据我所知,它正在按预期工作,至少在Symfony上它是这样工作的,我不知道它背后的原因。这就是为什么我更喜欢在控制器中渲染这些局部视图并将它们作为变量传递给主视图。