问题 #2921✓ 已解决提出于 2020年7月27日作者 Davidvlv4 个反应

BUG:禁用类时,样式管理器中的自动保存无法正常工作

快速解答作者 artf4

感谢你的报告,'editor.load' 方法存在一个漏洞,目前可以通过这种方式修补 “''js editor.load(() => { const em = editor.getModel(); em.get('storables').forEach(md => md.postLoad && md.postLoad(em)); }); ``` 实际上,如果你用 'editor.load()' 只是因为它启动时不加载,那是因为你必须在插件里定义自定义存储,这样'autoload'(默认为'true')就能正常工作(不需要临时补丁)

阅读下方完整回答 ↓

问题

版本: 0.16.18

你能重现演示中的bug吗?

[x] 是的:https://jsfiddle.net/ju1a0onx/

预期的行为是什么?

自动保存在样式更改后应该总是调用“store”命令,即使类已经禁用

目前的行为是什么?

当你禁用某个元素上的所有类(或者全部设为私有——这个示例中没有展示)并进行样式更改时,自动保存不会生效,你的更改也不会被保存。

你能附上截图、截屏或实时演示吗?

[x] 是的 [葡萄自动存档 bug.zip](https://github.com/artf/grapesjs/files/4980448/Grapesjs.autosave.bug.zip)

回答(3)

👍 最有帮助artf2020年8月26日

感谢你的报告,'editor.load' 方法存在一个漏洞,目前可以通过这种方式修补 “''js editor.load(() => { const em = editor.getModel(); em.get('storables').forEach(md => md.postLoad && md.postLoad(em)); });

实际上,如果你用 'editor.load()' 只是因为它启动时不加载,那是因为你必须在插件里定义自定义存储,这样'autoload'(默认为'true')就能正常工作(不需要临时补丁)
Joshmamroud2020年7月30日

@Davidvlv我也遇到同样的问题。我认为这是配置里的“avoidInlineStyles: 1”和没有选中类的组合。它似乎在“avoidInlineStyles: 0”下工作正常。

Davidvlv2020年7月31日

我试过了,这个设置确实能防止它在应该保存的时候不保存,但这会给我们后续使用输出带来一些其他问题。我们开启了avoidInlineStyles以避免这些问题。

相关问答

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

与此问题匹配的付费插件

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

查看全部插件

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

免费方案

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

浏览免费插件 →
高级方案

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

浏览高级插件 →

浏览插件分类

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