是否可以在液体中将对象初始化为变量?

时间:2019-08-22 04:01:57

标签: shopify liquid

我在Liquid环境中还很陌生,想知道您是否可以在Liquid文件中像JS一样初始化对象变量?

let person = [{
    'name' : 'John Doe',
    'age' : '20'
}];

我知道液体正在使用{%Assign%},所以它是任何可行的工作方式

{% assign person = [{
    'name' : 'John Doe',
    'age' : '20'
}]; %}

这是直接对其进行初始化,而无需从元字段中提取任何数据。

谢谢!

2 个答案:

答案 0 :(得分:0)

除非已在元字段中保存任何自定义对象,否则您无法在Shopify中创建任何自定义对象。以下是将对象分配为字符串,然后在javascript中使用它的一种方法。

{% assign person = "[{'name' : 'John Doe','age' : '20'}]" %}

<script>
 var person = {{person}};
 //typeof(person) is object
</script>

答案 1 :(得分:0)

您可能会使用这样的修饰:

{%- capture person -%}
name : John Doe , age : 20
{%- endcapture -%}
{% assign person = person | split:',' %}

人员现在是一个数组。

{{ person.first }}

{{ person[0] }}

将输出名称:John Doe。

然后,走得更远:

{% assign person_name = person.first | split:':' %}

所以

{{ person_name.last }}

{{ person_name[1] }}

将输出:John Doe。