shopify原始标签内的商店变量

时间:2018-08-13 10:44:28

标签: templates shopify

我正在编辑一个shopify模板液体页面,其中内部由

组成
{%raw%} {{item}} {% endraw %}

我通过添加来测试代码:

{%raw%} {% assign myvar = {{item}} %} {{myvar}} {% endraw %}

而不是将其全部打印为原始html,无论如何,我都可以克服这一点,因为我需要在该特定标签中打印出变量

谢谢!

更新:

  {% raw %}
    <form action="/cart" method="post" novalidate class="cart ajaxcart">
      <div class="ajaxcart__inner">
        {{#items}}
        <div class="ajaxcart__product">
          <div class="ajaxcart__row" data-line="{{line}}">
            <div class="grid">
              <div class="grid__item one-quarter">
                <a href="{{url}}" class="ajaxcart__product-image"><img src="{{img}}" alt=""></a>
              </div>
              <div class="grid__item three-quarters item-meta">
                <div class="grid--full display-table">
                  <div class="grid__item display-table-cell three-quarters cart-item">

                      <a href="{{url}}" class="ajaxcart__product-name">
                        {{name}}
                      </a>

类似的东西,但是一旦我删除了原始标签,里面的内容就不会呈现出来了?

1 个答案:

答案 0 :(得分:1)

您似乎正在尝试对将通过Javascript呈现的模板进行某些操作,该模板将在解析所有Liquid代码后运行-因此,即使您的分配有效,您所得到的还是文字字符串{{item}},我怀疑这是您想要的。

这看起来像是Timber系列主题之一的代码-如Supply或Brooklyn或它们相关主题之一。这些都是Javascript变量而不是Liquid变量的占位符。在页面加载时,Liquid仅渲染一次,而您要查看的模板将在购物者更改其购物车内容时用于实时更新页面。如果要在其中添加新变量,则需要通过主javascript文件(通常命名为“ app.js”或“ theme.js”)将其添加到主题的Assets文件夹中。

如果我对主题系列是正确的,那么您应该在名为buildCart的核心主题文件中找到一个函数,该函数建立了传递给该模板的信息。如果您将新变量添加到buildCart发送到该模板的对象,则可以将新变量的占位符设置为{{ myVar }}用于文本显示,如果变量包含HTML格式,则可以放置{{{ myVar }}}