Trait 的“setValue()”方法在值变更时不会被调用
问题
葡萄JS版本
- 我确认使用最新版本的GrapesJS
你用的是什么浏览器?
Chrome最新款
可复制演示链接
https://codesandbox.io/p/sandbox/withered-rgb-xmw8gk
描述一下那个虫子
如何复现这个漏洞?
- 开放代码沙盒
- 选择“body”(类型:“wrapper”)——观察从自定义源获取值的警报(调用 trait.getValue()
- 尝试更改值(特质:自定义,唯一存在的)——注意“setValue()”未被调用,因为没有显示警报
预期的行为是什么? 会显示“将全局值设置为” + 值的提醒
目前的行为是什么? 未显示警报,未调用“trait.setValue()”方法。
如果需要执行某些代码以重现该漏洞,请将其粘贴到下面: “''js 你的代码在这里
### 行为准则
- [X] 我同意遵守本项目的行为准则
回答(4)
谢谢!我确认过了,一切正常!
据我所见,当“Trait.setValue()”值来自输入时不会被调用。取而代之的是调用“setTargetValue()”,但该程序不会检查特征定义中的“setValue()”方法是否存在。另外,'Trait.setValue()' 检查属性中的 'setValue' 键,而 'Trait.getValue()' 通过 'this.get('getValue')' 获得其自定义 getter (Trait.ts:303)
谢谢你举报,@padcom。 关于Trait的“setValue()”方法在值变化时不会被调用,这个问题非常好。GrapesJS 推荐的方法是使用事件驱动 API。 从这里开始: 查看你所在模块的[GrapesJS文档](https://grapesjs.com/docs/) 寻找“on()”事件监听器方法 大多数操作可以通过监听编辑器和组件事件来实现 常见模式: “JavaScript 留意变化 editor.on('change', () => console.log('something changed')); 组件生命周期 editor.on('component:mount', (...
相关问答
通过相似的问题讨论继续研究。
问题 #5689
<> 在开头引入 editor.getHtml()
葡萄JS版本[X] 我确认使用最新版本的GrapesJS你用的是什么浏览器? Chrome 版本 121.0.6167.185(官方构建)(64 位)可复制演示链接 https://jsfiddle.net/ja50kzne/4/描述一下那个虫子 如何复现这个漏洞?我之前有个...
问题 #5373
“getDirtyCount()” 加载后返回 “1”
葡萄JS版本 [X] 我确认使用最新版本的GrapesJS 你用的是什么浏览器? Chrome最新款 可复制演示链接 https://github.com/padcom/grapes-bug-dirty-after-loading/blob/master/src/App.vue...
问题 #4506
拖拽模式下的拖拽块错误:绝对
葡萄JS版本 [X] 我确认使用最新版本的GrapesJS 你用的是什么浏览器? Chrome v103 可复制演示链接 https://stackblitz.com/edit/js-1xpo7b 描述一下那个虫子 如何复现这个漏洞?使用dragMode:绝对(设计师模式)从块...
问题 #4094
在Chrome的编辑器中拖放块时,无法拖放块块
葡萄JS版本 [X] 我确认使用最新版本的GrapesJS 你用的是什么浏览器? 版本 97.0.4692.71(官方构建)(64位) 可复制演示链接 https://grapesjs.com/demo.html 描述一下那个虫子 如何复现这个漏洞?在编辑器中拖放基本方块 预期...
与此问题匹配的付费插件
根据问题关键词和标签相关性精选,助你更快交付。
正在加载付费插件推荐……
相关教程
关于同一主题的深入指南。
教程
GrapesJS DevTools: A Developer Panel Inside Your Editor
If you've ever debugged GrapesJS with console.log(editor.getSelected()) and a dozen throwaway event listeners — this post is for you.
教程
How to Build a Production GrapesJS Editor: The Complete Walkthrough of Brief, Preset, Plugins, and Services
A complete walkthrough of building a production GrapesJS editor: how to choose a preset, pick plugins, and scope setup services without burning a sprint.
教程
Big Updates: TinyMCE 8 and Placeholder 2.0 for GrapesJS
In May we shipped major updates to two of our most popular GrapesJS plugins — TinyMCE Inline Text Editor and Placeholder.
浏览插件分类
直接跳转到市场上的插件分类页面。