GrapesJS 问题

已收录 3,464 个 GitHub 问题 370 个已解决 · 90 个待解决 搜索、筛选并探索经过实战检验的答案。

找到 231 个问题

🔍 general
#32762021年2月18日作者 ThomasPof2 个回答
0 个反应

CleanId函数无法与MJML代码兼容

这个问题是关于 MJML 代码的,但我觉得这更多是关于 grapesjs 而不是 grapesjs-mjml 有一个函数可以移除“src/code_manager/model/HtmlGenerator.js”中不必要的ID。这个函数在 HTML 标签上表现良好,但在 MJML 标签上就不行了。 我发现的是

artf

https://github.com/artf/grapesjs/releases/tag/v0.16.41

ClaudeCode

谢谢你举报,@ThomasPof。 感谢你分享关于CleanId函数无法与MJML代码配合的报告。为了帮助团队调查并优先排序: 请提供: 一个最小可复现的例子(CodeSandbox/JSFiddle) 你的GrapesJS版本号 浏览器和操作系统信息 浏览器控制台的任何错误信息 重现问题的步骤 最有帮助的是什么: 简约代码示例(不是你整个项目) 屏幕录制或截图显示问题 明确区分预期行为与实际行为 你正在使用的GrapesJS配置 有了这些细节,维护者可以更快地识别和优先排...

#32752021年2月18日作者 confettidc2 个回答
2 个反应

限制掉落方块的次数

你好, 有没有可能限制掉落方块的次数?例如,形式块和只被丢弃一次。 谢谢。

theSC0RP

你好,@confettidc,你可以尝试做类似的操作,比如设置一个计数变量,当添加某个类型的块时更新它,如果满足计数条件,就移除新添加的块。 请务必查看[API Reference](https://grapesjs.com/docs/api/)。

ClaudeCode

谢谢你举报,@confettidc。 关于限制掉落方块次数的好问题。GrapesJS 推荐的方法是使用事件驱动 API。 从这里开始: 查看你所在模块的[GrapesJS文档](https://grapesjs.com/docs/) 寻找“on()”事件监听器方法 大多数操作可以通过监听编辑器和组件事件来实现 常见模式: “JavaScript 留意变化 editor.on('change', () => console.log('something changed'));...

#32742021年2月17日作者 mig84472 个回答
0 个反应

Block.js“初始化”函数并没有做任何事情

https://github.com/artf/grapesjs/blob/3199d76ba5677229e90f13ef48fb91e9bfe1e90d/src/blockmanager/model/Block.js#L23 据我所见,initialize 函数中的代码尝试将该类别设置为新的 Category 对象,但目前没有任何反应。而且由于类别部分由BlocksView负责: https://github.com/artf/grapesjs/blob/3199d76ba5677229e90f13ef48fb91e9bfe1e90d/src/blockmanager/view/BlocksView.js#L129 “Bloc...

artf

是啊,感觉老旧了,谢谢

ClaudeCode

谢谢你举报,@mig8447。 感谢你分享关于Block.js“初始化”函数没有任何作用的报告。为了帮助团队调查并优先排序: 请提供: 一个最小可复现的例子(CodeSandbox/JSFiddle) 你的GrapesJS版本号 浏览器和操作系统信息 浏览器控制台的任何错误信息 重现问题的步骤 最有帮助的是什么:** 简约代码示例(不是你整个项目) 屏幕录制或截图显示问题 明确区分预期行为与实际行为 你正在使用的GrapesJS配置 有了这些细节,维护者可以更快地识别和优先...

#32732021年2月17日作者 ThomasPof2 个回答
0 个反应

请求:需要一个新版本以实现 cleanId 功能

[grapesjs-mjml 扩展](https://github.com/artf/grapesjs-mjml)需要更新版grapes.js [此提交](https://github.com/artf/grapesjs/commit/442cdf97b772f54029737f2450acb30e87074654)是清理ids,grapesjs-mjml需要它来生成有效的MJML代码。 你能提供新的发布吗?(母版为0.16.37,发布版本仍为0.16.34) 非常感谢!:-)

artf

完成 https://github.com/artf/grapesjs/releases/tag/v0.16.41

ClaudeCode

谢谢你举报,@ThomasPof。 关于请求:需要新版本才能实现cleanId功能,这个问题很棒。GrapesJS 推荐的方法是使用事件驱动 API。 从这里开始: 查看你所在模块的[GrapesJS文档](https://grapesjs.com/docs/) 寻找“on()”事件监听器方法 大多数操作可以通过监听编辑器和组件事件来实现 常见模式: “JavaScript 留意变化 editor.on('change', () => console.log('someth...

#32712021年2月16日作者 Francos102 个回答
0 个反应

SFTP

你好,我有个问题,我们在 Grapesjs 里添加的照片和视频可以通过 sftp 存储在服务器上吗?

artf

你可以在这里了解更多关于如何处理资产上传的信息:https://grapesjs.com/docs/modules/Assets.html#uploading-assets

ClaudeCode

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

#32552021年2月1日作者 Abhisheknanda13444633 个回答
3 个反应

自定义样式管理器

你好@artf 我正在尝试这样更改显示属性的类型和输入值 -: 但在样式管理器中按钮是看不到的。 我们如何自定义显示属性 “''js const styleManager = 编辑器。风格经理; styleManager.addSector('div-only-sector',{ 名称:“设定”, 开启:真, buildProps: ['width', 'height'], 性质: [{ 名称:“可见性”, 属性:“显示”, 类型:“无线电”, 性质:[ {value:“继承”,标题:“可视性”}, {值:“无”,标题:“隐藏”} ], }] }); ``` 演示 -: https://codepen.io/abhi_punk81...

nilchu

你必须使用“列表”属性来定义你的选项。在无线电选项对象中,应该读的是“name”而不是“title”。 “JavaScript const styleManager = 编辑器。风格经理; styleManager.addSector('div-only-sector', { 名称:“设定”, 开启:真, buildProps: ['width', 'height'], 性质: [{ 名称:“可见性”, 属性:“显示”, 类型:“无线电”, 列表:[{ 名称:“可见性”,...

Abhisheknanda1344463

非常感谢@nilchu你的帮助。

ClaudeCode

谢谢你举报,@Abhisheknanda1344463。 关于自定义样式管理器的好问题。推荐的 StyleManager 方法是使用事件驱动的 API。 从这里开始: 查看你所在模块的[GrapesJS文档](https://grapesjs.com/docs/) 寻找“on()”事件监听器方法 大多数操作可以通过监听编辑器和组件事件来实现 常见模式: “JavaScript 留意变化 editor.on('change', () => console.log('somet...

#32542021年1月29日作者 alemenciones2 个回答
0 个反应

如何在 traitManager 中隐藏“.gjs-traits-label”?

也许你能帮帮我......我想在打开 TraitManager 时移除标签“.gjs-traits-label”。 ![图片](https://user-images.githubusercontent.com/2309686/106330419-f499c500-6261-11eb-9aa5-27eaae11619b.png) ![图片](https://user-images.githubusercontent.com/2309686/106330330-c6b48080-6261-11eb-9513-1371cb59e840.png) 我尝试了类似这样的方法:

artf

“''CSS .gjs-traits-label { display: none } ```

ClaudeCode

谢谢你举报,@alemenciones。 关于如何在traitManager中隐藏“.gjs-traits-label”的好问题。GrapesJS 推荐的方法是使用事件驱动 API。 从这里开始: 查看你所在模块的[GrapesJS文档](https://grapesjs.com/docs/) 寻找“on()”事件监听器方法 大多数操作可以通过监听编辑器和组件事件来实现 常见模式: “JavaScript 留意变化 editor.on('change', () => con...

#32512021年1月28日作者 RutujaBadbe4 个回答
0 个反应

我该如何指定丢弃元素的位置?

我想指定拖拽元素的位置。比如,如果我有一个标题块,无论你拖到哪里,它都应该放在文档顶部。我该怎么做?

RutujaBadbe

把标题块放进画布后,我需要它放在任何其他组件/块的顶部。目前,我正在这样做。但这并没有奏效。 editor.on('canvas:drop',(DataTransfer, model)=> { 如果 (model.is('头部'))) { VAR指数 = 0; editor.getComponents().add(model, {at: index}); } })

artf

你可以用“可拖拽”属性(通过CSS查询字符串)定义组件可以放置的位置,但不能指定位置。 你可以尝试创建一个自定义组件作为容器,存放像 header 这样的组件,并且始终用这些容器初始化你的模板。然后你的头部可以用以下方式使用可拖拽属性:'draggable: '[data-gjs-type=“header-container”]',',

RutujaBadbe

@artf谢谢你的回复。我不知道这是不是正确的方法,但我做了一件事,对我有效。我对这方面还很新,还在从文档中学习。 我做了这个—— editor.on('canvas:drop',( model)=> { if (model.is('header')) { //created custom component type header const wrapper = editor.getWrapper(); const el = wrapper.find('header')[...

#32502021年1月28日作者 fmay4 个回答
2 个反应

问题:图层标签

@artf我很喜欢和GJS合作。我还有最后一件事希望你能帮忙。 如果能在图层管理器中自定义标签会非常有帮助。我到处找过,但都没找到。 默认显示“文本”和“框”的方式,对于想要高效导航来说帮助不大。 <img width=“204” alt=“截图 2021-01-28 07 27 16” src=“https://user-images.githubusercontent.com/2796719/106104795-d5544800-613a-11eb-97c4-762e5977e872.png”> 我真的很想自己定制这些。就我而言,我想展示标签名和身份识别码。 非常感谢

artf

你可以扩展组件模型并覆盖“getName”函数

fmay

如果这对任何人有用,我找到了一个简单且替代的方法,可以在组件创建时实现这一点。

flauc

我是这样做的: 好处是如果组件ID或标签以后更改,图层管理器里仍会更新,而且你也可以重新命名单个组件。

#32492021年1月27日作者 theSC0RP4 个回答
0 个反应

关于StorageManager存储的JSON的问题

嘿,@artf。我想访问在存储模板时生成的 json,但不想实际存储模板。json 对象可以通过事件访问,但我不想调用 'editor.store()' 然后再用事件。 有没有办法获取json对象(比如编辑器里调用函数或者某个属性)? 或者有没有办法停止“editor.store()”方法,这样我就能获取正在存储的json并中止调用?

Joshmamroud

@theSC0RP 这是你在找的吗?[editor.getComponents()](https://grapesjs.com/docs/api/editor.html#getcomponents)

artf

@theSC0RP不确定你是否想要存储功能,但Josh提出的方案是正确的,或者你也可以添加存储(如果需要,也可以在里面不做任何操作......)https://grapesjs.com/docs/modules/Storage.html#define-new-storage

theSC0RP

你总可以添加存储(如果需要,也可以在里面什么都不做......)https://grapesjs.com/docs/modules/Storage.html#define-new-storage 谢谢@artf。这就是我最终做的。用 'editor.getComponents()' 时,你会得到一个循环结构(model -> view -> model -> ...),但 storageManager 不会存储它,也不能用来加载模板。

浏览所有主题