:改进UndoManager API
嗨@anatoli-dp,如果能查看撤销历史会非常酷,我已经在考虑如何扩展UndoManager模块,通过插件实现这种功能(比如你可以用你喜欢的框架渲染UI)。 UndoManager 栈会在任何被监听的模型/集合(组件、CSS 规则等)发生变化时更新,新增一个包含动作信息的 UndoAction 对象。值得注意的是,一次更改可以生成多个撤销动作: “''js 这会为新组件生成一个撤销操作 以及另一个用于新CSS规则的任务 editor.addComponents(' <div class=“test”>Hi</div> <style>.test{color: red}</style> ); `` 这里有一个[示例](https:...
阅读下方完整回答 ↓问题
我认为一个更详细的历史堆栈会带来很棒的功能。你可以拿到撤销堆栈,然后从中建立一个记录所有编辑的历史报告,但对我来说每次编辑具体是什么不太清楚(至少对我来说是这样,如果我遗漏了什么,请告诉我)。比如用公式化描述,比如组件[组件名称]在[页面位置或组件添加]处添加/删除/编辑,或者组件[组件]文本编辑......(请原谅我用这个笼统描述,因为连我自己都不知道该怎么表达)只是简单介绍一下每个堆栈中项目的撤销/重做历史。我目前只知道每个历史物品的ID,如果现在可行的话,我只是不知道该如何提取这些信息来创建一个历史侧边栏,除了ID,请给我一些线索,告诉我该注意什么
最新版本有替代方案吗?
- 是的(描述替代方案)
- [ x] 不
这是否与某个问题有关?
- 是的(请提供本期链接)
- [ x] 不
回答(4)
嗨@anatoli-dp,如果能查看撤销历史会非常酷,我已经在考虑如何扩展UndoManager模块,通过插件实现这种功能(比如你可以用你喜欢的框架渲染UI)。 UndoManager 栈会在任何被监听的模型/集合(组件、CSS 规则等)发生变化时更新,新增一个包含动作信息的 UndoAction 对象。值得注意的是,一次更改可以生成多个撤销动作: “''js 这会为新组件生成一个撤销操作 以及另一个用于新CSS规则的任务 editor.addComponents(' <div class=“test”>Hi</div> <style>.test{color: red}</style> );...
是的,我知道如何访问这个栈,只是不知道怎么设计它,才能给最终用户更有意义的描述
我只是不知道怎么给最终用户一个更有意义的描述
每个UndoAction(堆栈的每个实例)都会告诉你动作的“类型”(例如“添加”、“删除”、“重置”、“更改”)以及关于更新模型的详细信息(例如,Component、CssRule 等)。你可以尝试读取这些数据,但我更想的是如何让每个操作都易于识别。
谢谢你举报,@anatoli-DP。 关于[功能]:改进UndoManager API的好建议!虽然这个具体功能还没有出现在核心 API 中,但有几种方法可以实现类似的行为。 使用事件系统: “JavaScript editor.on('component:update', (component) => { 你的逻辑 }); ``` 替代方法: 听取“selector:add”以获取CSS选择器更改 使用“selector:custom”来表示自定义规则 利用“change:*”事件进行细致跟踪 构建一个插件,扩展编辑器并具备此功能 正式宣布: 如果此功能能惠及更多用户,考虑在 Grapes...
相关问答
通过相似的问题讨论继续研究。
问题 #5632
在撤销管理器中添加更改
葡萄JS版本 [X] 我确认使用最新版本的GrapesJS 你用的是什么浏览器? Chrome v91 可复制演示链接 https://codepen.io/dhanadsp1120/pen/ExrRvOB 描述一下那个虫子 如何重现这个bug?通过调用 um.stop() 禁...
问题 #5631
撤销管理器 add () 无法如预期工作
葡萄JS版本 [X] 我确认使用最新版本的GrapesJS 你用的是什么浏览器? Chrome v91 可复制演示链接 -- 描述一下那个虫子 如何复现这个漏洞? 我想在undomanager堆栈中添加一个更改。 'var components = 编辑器。组成部分; 编辑。U...
问题 #3939
在预览中禁用拖放功能
葡萄JS版本[X] 我确认使用最新版本的GrapesJS你用的是什么浏览器? 第95卷可复制演示链接 https://codesandbox.io/s/grapes-border-issue-forked-2c0ib?file=/src/index.js:10258-10261...
问题 #4947
撤销管理器在撤销移除操作时无法正常工作
葡萄JS版本[X] 我确认使用最新版本的GrapesJS你用的是什么浏览器? Chrome - 版本 110.0.5481.100(官方构建)(arm64)可复制演示链接 https://codepen.io/faisal-praella/pen/ExeNwxJ描述一下那个虫子...
与此问题匹配的付费插件
根据问题关键词和标签相关性精选,助你更快交付。
正在加载付费插件推荐……
浏览插件分类
直接跳转到市场上的插件分类页面。