PageKit — 可自托管的 GrapesJS 建站工具,附完整源码。 获取抢先体验

问题 #2426✓ 已解决提出于 2019年11月25日作者 Hovius3 个反应

如何用新的编辑器配置处理旧组件(JSON)?

快速解答作者 artf❤ 2

编辑器能在不手动添加新组件的情况下,直接识别新的组件配置吗? 其实不完全是,如果你以一种方式存储组件定义,编辑器会加载该定义。 我唯一能建议的是使用“avoidDefaults”(从v0.15.5起默认为“true”)。这样可以避免存储所有默认组件属性,避免这些情况

阅读下方完整回答 ↓

问题

你好,@artf,

我有一个关于 grapes 编辑器的问题,文档里找不到,希望你能给出答案。

基础配置:

所有组件的配置都用初始化来设置 this.editor = grapesjs.init(defaultConfiguration);

之前保存的json中的组件是通过setComponents()添加的。 this.editor.setComponents(templateComponents)

问题所在: 我有一个自定义组件,想从中更新配置。就我而言,我想把 stylable 属性改为 false。 所以我改了组件配置,现在当我向画布添加新组件时,它会带有可样式的false属性。这很好。

但其他用 setComponents 设置的组件仍然保留 stylable: true 属性。因为 json 是之前用不同的配置创建的。

但是,只有当我编辑组件时,画布上的所有组件才会被重新添加,并且它会覆盖旧组件配置(新json)。(到新 stylable: false )

我的问题是: 当我们还有很多持久化的旧JSON配置和旧配置时,我们该如何处理新的组件配置?编辑器能否在不手动添加新组件的情况下识别新的组件配置?

提前感谢大家!

回答(2)

👍 最有帮助artf• 2019年11月29日

编辑器能在不手动添加新组件的情况下,直接识别新的组件配置吗?

其实不完全是,如果你以一种方式存储组件定义,编辑器会加载该定义。

我唯一能建议的是使用“avoidDefaults”(从v0.15.5起默认为“true”)。这样可以避免存储所有默认组件属性,避免这些情况

Hovius• 2019年12月2日

谢谢你的回复! 我打算用“avoidDefaults: true”来实现:)

相关问答

通过相似的问题讨论继续研究。

与此问题匹配的付费插件

根据问题关键词和标签相关性精选,助你更快交付。

查看全部插件

正在加载付费插件推荐……

免费方案

在以下平台查看开源 GrapesJS 插件: GitHub 或在我们的免费目录中快速搜索。

浏览免费插件 →
高级方案

高级插件提供支持、定期更新和生产就绪的功能——为你节省数天的集成工作。

浏览高级插件 →

浏览插件分类

直接跳转到市场上的插件分类页面。