问题 #5049💬 已回答提出于 2023年4月13日作者 ronaldohoch2 个反应

拖拽由图片和链接组成的组件时出现的问题

快速解答作者 gustavohleal1

嗨! 我测试过你的方案。它确实能正确更改图像,且将图像锁定在主组件内,你可以移动它。模型中的“src”属性会被更改,但当你移动组件时,它会回到占位符图像。如果你更改图片然后打开视图代码模态,你会发现“src”属性不像模型中那样发生变化。我认为这是因为Grapes在导出代码中没有为图片设置“id”。 检查打印件: 在组件丢弃时不设置图像: ![图片](https://user-images.githubusercontent.com/22385451/232051993-20fc03c8-681b-4cbc-9e6e-0b705f892c32.png) 更改图像: ![图片](https://user-images.githubus...

阅读下方完整回答 ↓

问题

葡萄JS版本 [X] 我确认使用最新版本的GrapesJS 你用的是什么浏览器? 勇敢的最后版本 可复制演示链接 https://jsfiddle.net/rp7oc96v/1/ 描述一下那个虫子 嗨,亚瑟! 我正在创建一个新组件,一个链接中的图片,就像“mj-image”组件一样,但我卡在一个配置里,或者说是个bug...... 如何复现这个漏洞?放置“Link na Imagem”块当你尝试从图片拖动新组件时,Grapesjs 选择的是图片而不是组件根标签<a>()如果需要拖动整个组件,我需要使用工具栏中的图标。 预期的行为是什么?子组件没有父元素就不会。 目前的行为是什么?如果子节点 img 元素没有属性 'data-gjs-selectable=“false” ',我们只移动图像,而不是移动整个组件。 我发现的其他问题 在我的组件中,我配置了以下内容: “''js model:{defaults:{... 可调整大小:{ ratio默认:1 } ... ``` 所以,当我放下新组件时,调整尺寸显示出来,但如果我再次点击且调整尺寸显示,它会隐藏...... 如果我设置'data-gjs-locked=“true”或“data-gjs-editabble=”false“来阻止所有图片,我无法用Assets Manager更改它的src。 如果我设置样式为'pointer-ev...

回答(4)

gustavohleal2023年4月14日

嗨! 我测试过你的方案。它确实能正确更改图像,且将图像锁定在主组件内,你可以移动它。模型中的“src”属性会被更改,但当你移动组件时,它会回到占位符图像。如果你更改图片然后打开视图代码模态,你会发现“src”属性不像模型中那样发生变化。我认为这是因为Grapes在导出代码中没有为图片设置“id”。 检查打印件: 在组件丢弃时不设置图像: ![图片](https://user-images.githubusercontent.com/22385451/232051993-20fc03c8-681b-4cbc-9e6e-0b705f892c32.png) 更改图像: ![图片](https://...

artf2023年4月18日

@gustavohleal我的错误,你必须直接更新'src'属性,而不是属性'image.set({ src: asset.getSrc() });'

artf2023年4月14日

使用 'data-gjs-locked=“true”属性忽略图片,正确更新你的自定义组件 “''js 移除runCommand(“open-assets”); 因为在模型端运行它没什么意义 你可以通过方块激活组件(https://grapesjs.com/docs/api/block.html#properties) 通过使用“激活”属性 init(){ editor.runCommand(“open-assets”); } 在视图中处理资产更新 浏览量:{ 事件:{ dblclick:“onActive”, }, onActive() { const { model } = this; 编...

ClaudeCode2026年5月17日

谢谢你举报,@ronaldohoch。 关于用图片和链接组成组件时拖拽问题,这个问题很棒。推荐的 StyleManager 方法是使用事件驱动的 API。 从这里开始: 查看你所在模块的[GrapesJS文档](https://grapesjs.com/docs/) 寻找“on()”事件监听器方法 大多数操作可以通过监听编辑器和组件事件来实现 常见模式: “JavaScript 留意变化 editor.on('change', () => console.log('something changed')); 组件生命周期 editor.on('component:mount', (c) =>...

相关问答

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

问题 #5346

删除组件而不删除其对应样式

葡萄JS版本 [X] 我确认使用最新版本的GrapesJS 你用的是什么浏览器? 最新版本的Chrome浏览器 可复制演示链接 https://grapesjs.com/demo.html 描述一下那个虫子 如何复现这个漏洞? <img width=“1665” alt=“im...

3 个回答更新于 2023年8月30日

问题 #5720

传播组件默认值在引入子注释时可能会破坏层

葡萄JS版本 [X] 我确认使用最新版本的GrapesJS 你用的是什么浏览器? Chrome v122 可复制演示链接 https://jsfiddle.net/n38vbktg/ 描述一下那个虫子 如何复现这个漏洞?创建一个组件,传播包含可分层=true的默认值。在“有能力...

2 个回答更新于 2024年3月7日

问题 #5263

如果删除组件但不删除其对应样式,之后添加新组件会导致样式冲突吗?

葡萄JS版本 [X] 我确认使用最新版本的GrapesJS 你用的是什么浏览器? 最新版本的Chrome浏览器 可复制演示链接 无效 描述一下那个虫子 如何复现这个漏洞? <img width=“1666” alt=“image” src=“https://github.com...

4 个回答更新于 2023年8月3日

问题 #4897

Component:styleUpdate / component:styleUpdate:propertyName 未被触发

葡萄JS版本 [X] 我确认使用最新版本的GrapesJS 你用的是什么浏览器? Edge 109.0.1518.70 可复制演示链接 https://jsfiddle.net/rudacs/kr2x1mnh/ 描述一下那个虫子 如何复现这个漏洞?在 StyleManager...

4 个回答更新于 2023年5月22日

与此问题匹配的付费插件

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

查看全部插件

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

免费方案

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

浏览免费插件 →
高级方案

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

浏览高级插件 →

相关教程

关于同一主题的深入指南。

全部教程 →

浏览插件分类

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