在编辑器中修改组件会清除模型内容
你好,Austin,你问题的原因是内置的RTE和自定义RTE工作方式不同(比如,CKEditor插件)直接把所有更改写入“内容”里。 https://github.com/artf/grapesjs/blob/dev/src/dom_components/view/ComponentTextView.js#L67-L90 默认的RTE会根据新更新的内容重置组件,所以你必须通过“model.components()”而不是“model.get('content')”来检查它们。
阅读下方完整回答 ↓问题
我想实现的目标: 我在编辑器中拉入的一些组件上有特殊的“data-”属性。当其中一个被修改时,我想获取“data-”属性的值和新内容。我有代码监听组件被修改。当这个事件触发时,我正在查看内容(正在进行中)。然而,当我拿到内容时,它是空的,尽管组件本身并没有...... 问题似乎是,不是修改现有组件模型,而是创建了一个新的。 'editor.on( 'component:update' , function( model ) { console.log( JSON.stringify( model ) ); });` 当选择我想修改的元素时,模型会被写入console.log 2x '{“tagName”:“p”,“type”:“text”,“removable”:true,“draggable”:true,“droppable”:false,“badgable”:true,“styleable”:true,“stylable-require”:“”,“unstylable”:“”,“highlightable”:true,“copyable”:true,“resizable”:false,“editable”:true,“layerable”:true,“selectable”:true,“hoverable”:true,“void”:false,“state”:“”,“,”st...
回答(3)
你好,Austin,你问题的原因是内置的RTE和自定义RTE工作方式不同(比如,CKEditor插件)直接把所有更改写入“内容”里。 https://github.com/artf/grapesjs/blob/dev/src/dom_components/view/ComponentTextView.js#L67-L90 默认的RTE会根据新更新的内容重置组件,所以你必须通过“model.components()”而不是“model.get('content')”来检查它们。
我一直在研究更多代码,据我所知,使用CKEditor插件时(用通讯演示测试过)时不会出现这种情况。不过,使用默认RTE时确实会出现这种情况(我在自己的代码和网站演示中测试过)。
<sub>发送时<a href=“http://githawk.com”>GitHawk</a></sub>
由于关闭后没有近期活动,该帖子已被自动锁定。请为相关漏洞开启新一期。
相关问答
通过相似的问题讨论继续研究。
问题 #871
第一次选择组件/块时样式管理器选项错误
你好, 我注意到样式管理器出现了以下bug行为:使用GrapesJS的本地副本(版本0.14.5)。在Chrome和Firefox上的Win10和OSX测试GrapesJS 初始化,组件通过 loadComponents 加载。 (例如,这是我在演示中使用的 JSON 格式,加...
问题 #1904
找零财产浮动
我正在尝试通过事件监听“float”属性的变化,判断它是在Style Manager中被移到了“左”、“右”还是“无”,但我的代码似乎没有给出想要的结果。 它给出的是“style update null”作为输出。理想的输出是float:right、float:left或flo...
问题 #710
让整个元素都能拖动,而不仅仅是手柄
我正在修改手柄,除了有手柄外,我还希望整个元素都能拖拽。看代码,我猜我只需要在select时给可拖拽的元素附加'tlb-move'命令。 上述代码在选择状态下,将选中的组件写入控制台。从这里开始,我认为需要添加一个用于拖拽的事件监听器,但我尝试用 '.on()' 附加监听器都失...
问题 #507
上传文件在丢弃文件上被调用了两次?
我有一个编辑器,初始化如下: 如果我把图片添加到画布,然后试图通过拖拽到模态的投放区域上传新图片,uploadFile函数会被调用两次。点击上传区域,然后从Windows对话框中选择文件上传,效果很好,它只调用该函数一次。
与此问题匹配的付费插件
根据问题关键词和标签相关性精选,助你更快交付。
正在加载付费插件推荐……
相关教程
关于同一主题的深入指南。
浏览插件分类
直接跳转到市场上的插件分类页面。