液体模式有效,但从编辑器中修改时会删除该部分

liquid schema works, but removes the section when modified from the editor

我是整个 Shopify 和 liquid 环境的新手。但是,我能够修改使用 {%schema%} 标记显示控件的部分,以设置文本框的背景和最大宽度。

所以我冒险为自己创建了一个部分,以便在其中一个页面上添加一个小的常见问题解答块。

我已尽我所能阅读所有内容以确保我没有忘记任何内容,我还检查了现有部分的代码是否正常工作,但我找不到导致此问题的原因。

当我在主题编辑器中打开包含该部分的页面时,我可以正确加载并显示默认颜色。我还在左窗格中看到修改器块,但是一旦我在编辑器中更改值,它只会让整个部分消失。

有人可以帮我指出我做错了什么吗?

非常感谢

这是部分中的完整代码:

    <style>
  
  .faq{
    max-width:900px;
    width:80%;
  }
  .faq-container{
    background-color:{{section.settings.container_background_color}};
    display: flex;
    justify-content:center;
    
  }
  
</style>


<div class="faq-container">
 
    <div class="faq" id="ndnappseasyfaqs-wrapper"></div>
  
</div>


{%schema%}
{
  "name": "FAQ section",
  "settings": [
    {
      "type": "color",
      "id": "container_background_color",
      "label": "Background color",
      "default": "#a0cf67"
    }
  ]


}
{% endschema %}

这是我尝试修改之前的结果: before modification

这是我修改颜色后的结果: After modification

这可能是与 JS 中的预览更新相关联的问题。 您是否尝试保存更改并查看它是否有效?

根据Integration with the theme editor

When merchants customize sections, the HTML of those sections is dynamically added, removed, or re-rendered directly onto the existing DOM without reloading the entire page.

JavaScript that runs when the page loads will not run again when a section is re-rendered or added to the page. This poses a problem for any custom scripts that would need to be re-run.

如果您在页面加载时 运行 加载一些 js,则在用户对部分进行更改后它不会再次 运行。所以我猜你必须手动 运行 js。只需将事件与您的事件侦听器绑定

document.addEventListener('shopify:section:load', function(event){
   [your code...]
});