字符串中的Twig变量

时间:2017-06-29 16:40:36

标签: twig

首先,我没有足够的能力创建某些人的自定义功能。我的问题需要使用Twig的前端选项。是的,我对Twig很新:)

我正在尝试将一些Twig变量添加到javascript变量中。该javascript变量用于将文本翻译为不同的语言。

最终结果必须是:

var ajaxTranslations = {{ 'Free shipping; In stock; Natural; Juice;' | t_json | raw }}; 
// so Natural and Juice need to added in the exact same way as above

所以我有一个Twig变量,其中包含一些文本:

{{ product_usp }} // results in -> Natural, Juice

首先,我想将该字符串(在每个逗号之后)拆分为两个单独的值。 接下来,我想创建一个包含这些值的数组,并将它们添加到该javascript变量中。这就是我的问题开始的地方。

如何将tusp添加到该javascript变量中?

我做的是:

 {% set tusp = [] %}
  {% set usps = theme.product_usp | split(',') %}

  {% for usp in usps %}
   {% set tusp = usp ~ ';' %}
  {% endfor %}

<script>
    var ajaxTranslations = {{ 'Free shipping; In stock; ~ tusp' | t_json | raw }};
<script>

这会导致空值,或~ tusp被视为文本而非值。

非常感谢任何帮助。

1 个答案:

答案 0 :(得分:1)

使用代字号运算符时,它必须位于字符串和/或变量之间:

<script>
    var ajaxTranslations = "{{ 'Free shipping; In stock; ' ~ tusp | raw }}";
<script>

或者您可以使用&#34;字符串插值&#34;:

<script>
    var ajaxTranslations = "{{ "Free shipping; In stock; #{tusp}" | raw }}";
<script>