JSON不替换变量

时间:2017-07-29 15:38:58

标签: json twig patternlab.io

我正在使用Twig PatternLab。

我在JSON和Twig for循环中遇到了一个小问题。

Atom 00-h3-black.twig:

<h3 class="A-ChevronBlack"><a href="">{{ text.chevron }}</a></h3>

Molecule 00-mastertile.twig:

    <div class="M-DMasterTile">
      <div class="image"></div>
      <div class="content">
        {% include "atoms-h3-black" %}
      </div>
    </div>

生物00-default2.twig:

    {% for post in default2 %}
          {% include "molecules-mastertile" %}
    {% endfor %}

在Organism文件夹00-default2.json

中的JSON
    {
      "default2" : [
        { 
          "text" : {
            "chevron" : "How to build a campfire",
            "body" : "This is the body copy"
          }
        },
        {
          "text" : {
            "chevron":"Lorem Ipsum",
            "body" : "This is the body copy"
          }
        }
      ]
    }

我的期望是“default2”循环两次,因为我在JSON中有一个包含2个项目的数组并推送JSON内容。如果我从JSON数组中取出变量,它会显示变化(但显然是重复的)。

我在这里做错了什么?

感谢您的帮助

1 个答案:

答案 0 :(得分:1)

include使用全局范围,其中没有变量text。使用include with语法将变量传递到内部范围。

您的Organisms 00-default2.twig应如下所示:

{% for post in default2 %}
      {% include "molecules-mastertile" with {'text': post.text} %}
{% endfor %}