Javascript 多级购物区

Javascript 多级购物区,javascript,ruby-on-rails,shopify,liquid,shopify-template,Javascript,Ruby On Rails,Shopify,Liquid,Shopify Template,我正在尝试构建一个产品页面的分区管理部分,商家可以根据产品类型输入一系列常见问题解答。模型有3个不同的类别,每个类别都有自己的常见问题列表 我有点纠结于如何动态添加每个部分下的FAQ数量(例如,公式可能有9个FAQ,而粥可能有2个FAQ) 目前,下面的代码只添加了一组按钮,并返回“schema中的无效JSON标记” 从我的经验来看,分区块似乎只有一个层次。有没有办法创建一个分区,并在该分区中输入多个项目并将它们链接在一起 [shopify部分截图][ [模型][ 为了简洁起见,我删除了faq手风

我正在尝试构建一个产品页面的分区管理部分,商家可以根据产品类型输入一系列常见问题解答。模型有3个不同的类别,每个类别都有自己的常见问题列表

我有点纠结于如何动态添加每个部分下的FAQ数量(例如,公式可能有9个FAQ,而粥可能有2个FAQ)

目前,下面的代码只添加了一组按钮,并返回“schema中的无效JSON标记”

从我的经验来看,分区块似乎只有一个层次。有没有办法创建一个分区,并在该分区中输入多个项目并将它们链接在一起

[shopify部分截图][

[模型][

为了简洁起见,我删除了faq手风琴的代码


{section.blocks%中的块的%s}
{%-assign titleIndex=0-%}
{%if block.type==“FAQ标题”%}
{{block.settings.faqHeading}
{%endif%}
{%if block.type==“faqSection”%}
{{block.settings.faqSection}
{%endif%}
{%-assign contentIndex=0-%}
{%if block.type==“faqSection”%}
{%-assign contentIndex=0 |加:1-%}
{%-分配索引=0-%}
{section.blocks%中的块的%s}
{%if block.type==“FAQQandA”%}
{section.blocks%中的块的%s}
{%-INDEX=0 |加:1-%}
{{block.settings.faqQuestion}
{{block.settings.faqAnswer}
{%endfor%}
{%endif%}
{%endfor%}
{%endif%}
{%endfor%}
{%schema%}
{
“区块”:[
{
“名称”:“常见问题标题”,
“类型”:“常见问题解答标题”,
"限额":一,,
“设置”:[
{
“类型”:“文本”,
“id”:“常见问题解答标题”,
“标签”:“常见问题解答标题”,
“默认设置”:“常见问题解答”
}
]
},
{
“名称”:“常见问题解答部分”,
“类型”:“常见问题解答部分”,
“设置”:[
{
“类型”:“文本”,
“id”:“常见问题解答部分”,
“标签”:“常见问题解答产品类型”
}
],
“区块”:[
{
“类型”:“文本”,
“姓名”:“问题”
“设置”[
{
“类型”:“文本”,
“标签”:“输入问题”,
“id”:“常见问题解答”,
“默认设置”:“常见问题解答问题内容显示在此处”
},
{
“类型”:“文本区域”,
“标签”:“输入答案”,
“id”:“常见问题解答”,
“默认值”:“Lorem ipsum dolor amit icit”
}
]
} 
]
}
]
}

简短的回答是-

截面仅允许块的单个标高


但是您可以通过一些附加代码来克服这个限制

为要输入产品类型的每个块创建一个额外的文本字段,当循环这些块时,必须检查文本字段是否等于产品类型

例如:

"blocks": [
    {
        "type": "text",
        "name": "Question"
        "settings" [
            {
                "type": "text",
                "label": "Type",
                "id": "type"
            },
            {
                "type": "text",
                "label": "Enter Question",
                "id": "faqQuestion",
                "default": "FAQ question content goes here"
            },
            {
                "type": "textarea",
                "label": "Enter Answer",
                "id": "faqAnswer",
                "default": "Lorem ipsum dolor amit icit"
            }
        ]
    } 
]
还有这个循环

{%- for block in section.blocks -%}
  {%- assign type = block.settings.type -%}
  {%- if type == product.type -%}
    ... Do your QA logic here
  {%- endif -%}
{%- endfor -%}

请记住,这种方法不利于管理,因为您拥有的产品越多,您将拥有的QA块就越多,而且在某种程度上,管理它们会非常困难。最好使用具有可重复字段的元字段应用程序来实现此目的。

为了澄清我不明白如何/如果您可以在节架构中嵌套块
{%- for block in section.blocks -%}
  {%- assign type = block.settings.type -%}
  {%- if type == product.type -%}
    ... Do your QA logic here
  {%- endif -%}
{%- endfor -%}