我有一个侧边栏ul / li,其中填充了{%for%}循环。在for循环运行时,我正在使用{%cycle%}为每个li分配一个特定的类,该类将为其提供5种背景色之一。效果很好。
但是,我想将此类分配扩展到边栏中的li之外,并扩展到相应产品页面上存在的对象上。我假设这将涉及分配某种类型的变量,这些变量可以在页面的其他位置调用。
这是一个例子:
汽车 摩托车 货车 飞机 火车
假设选择了“摩托车”。那个特殊的补充工具栏li被分配了“红色”类别,并在补充工具栏中显示为红色。
我想将同一“红色”类动态加载到“摩托车”页面内容中的不同元素中。
我尝试将一个变量添加到for循环中,但看不到该变量将如何在其他地方解释。
在侧边栏代码段中:
{% for sidebar in sidebar_link %}
{% assign colorvariable = "{% cycle 'purple', 'red', 'blue', 'yellow', 'green' %}" %}
<a href="{{ sidebar.url }}"><li class="{% cycle 'purple', 'red', 'blue', 'yellow', 'green' %}">{{ sidebar.title }}</li></a>
{% endfor %}
(此代码在添加{%Assign%}之前有效。)
是否有适当的方法来做到这一点?注意:这适用于Shopify网站,其中sidebar.titles与page.titles匹配,如果允许的话。
答案 0 :(得分:0)
cycle
是不能在assign
标签中使用的输出标签。但是您可以使用capture
,然后使用变量:
{% for sidebar in sidebar_link %}
{% capture colorvariable %}{% cycle 'purple', 'red', 'blue', 'yellow', 'green' %}{% endcapture %}
<a href="{{ sidebar.url }}"><li class="colorvariable">{{ sidebar.title }}</li></a>
{% endfor %}