GrapesJS 问题

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

找到 877 个问题

🔍 question
#33052021年3月3日作者 RaresVlaiduc3 个回答
11 个反应

(v0.16.41) 点击时按钮未被设置为激活

版本:v0.16.41 你能重现演示中的bug吗? [ ] 是的 [x] 不 预期的行为是什么? 当我点击按钮时,应该会添加 gjs-pn-active 类。 详细描述那个漏洞 我有三个按钮分别对应三台不同的设备(台式机、平板和手机)。 我把它们放在顶部面板上,点击时画布大小会变,但点击的按钮没有被设置为激活。 你能附上截图、截屏或实时演示吗?** [x] 是的(附上) [ ] 不 ![图片](https://user-images.githubusercontent.com/73160095/109790439-164bea80-7c1a-11eb-9aeb-98954166afa2.png) ![图片](https://use...

Ju99ernaut

Grapesjs要求你的命令有“运行”和“停止”功能,才能自动切换面板按钮,所以这可能是问题所在: “''js const cm = 编辑。指挥; Grapesjs 无法在此命令格式下切换面板按钮 cm.add('desktop', e => e.setDevice('Desktop')) Grapesjs 能因为运行和停止而切换面板按钮 cm.add('desktop', { run(e) { e.setDevice('Desktop') }, stop() {} });...

kerryj89

@Ju99ernaut 谢谢你。 现在通过 'grapesjs.init()' 创建 'devices-c' 面板时,active 状态对我来说是正常的。

ClaudeCode

谢谢你举报,@RaresVlaiduc。 (v0.16.41) 按钮点击时未被设置为激活的问题似乎是竞赛条件或状态管理时序问题。这通常发生在组件生命周期事件和DOM修改重叠时,导致状态不一致。 尝试什么: 添加setTimeout包装器以确保DOM已稳定: “JavaScript setTimeout(() => { 你在这里的行动 }, 0); 推荐的下一步步骤: 如果还没测试过,请用最新的GrapesJS版本测试 提供最小可重复的示例(CodeSandbox)——这有助...

#33042021年3月2日作者 SyedHashimShah3 个回答
2 个反应

我如何自定义Grapesjs的用户界面?

我想自定义 Grapesjs 的界面,但 js 和 css 文件都被压缩了。请告诉我该怎么做?我只是想在界面里保留一些特定的模块,比如图片、文本等。

echobinod

SASS 用于生成压缩后的 CSS 文件。你可以从这里更改样式变量:src/styles/scss/

artf

@SyedHashimShah https://grapesjs.com/docs/getting-started.html

ClaudeCode

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

#33032021年3月2日作者 RutujaBadbe4 个回答
1 个反应

类别顺序显示不正确

嗨! 我想在区块管理器中按特定顺序显示这些类别。我查阅了文档和之前的问题,发现了订单属性。于是,我尝试设置了顺序属性。但即使 ORDER 属性正在设置,它还没有按那个顺序显示。我是不是漏掉了什么?或者做错了什么? 我正在做的是: 因此,期望的结果是按顺序查看类别——标题、旋转木马横幅、版块、类别、新闻信件、页脚 但我仍然感受到的是—— ![捕获](https://user-images.githubusercontent.com/53044783/109652612-0387d600-7b86-11eb-88ca-38a9ed0c219a.PNG)

Ju99ernaut

我想你可以把它设为功能请求,我不确定Grapesjs上是否已经有类似的功能。不过如果你把每个类别的块拆分成不同的文件,然后按顺序加载这些文件,可能会更容易管理。

Ju99ernaut

我认为方块添加的顺序决定了类别顺序。

RutujaBadbe

@Ju99ernaut你好!谢谢你的回复。是的。最后我做了。但如果我想动态地做呢?如果有很多区块,保持顺序难道不难吗?

#33012021年3月2日作者 mmotov2 个回答
0 个反应

更改一个复制的元素会影响其他复制的元素

版本:0.16.41 你能重现演示中的bug吗? 是的 预期的行为是什么? 当我复制粘贴元素(例如文本)并做任何修改时,它应该只会更改选中的元素。 目前的行为是什么? 目前,所有复制元素都进行了更改 你能附上截图、截屏或实时演示吗? https://www.loom.com/share/0dcf0cd5e920459fa6879d8154efae76

JamieBunyassi

你是怎么解决的?

ClaudeCode

谢谢你举报,@mmotov。 更改一个复制元素会影响其他复制元素的问题似乎是竞态条件或状态管理时序问题。这通常发生在组件生命周期事件和DOM修改重叠时,导致状态不一致。 尝试什么: 添加setTimeout包装器以确保DOM已稳定: “JavaScript setTimeout(() => { 你在这里的行动 }, 0); 推荐的下一步步骤: 如果还没测试过,请用最新的GrapesJS版本测试 提供最小可重复的示例(CodeSandbox)——这有助于团队更快识别根本原因...

#32962021年3月1日作者 RaresVlaiduc3 个回答
1 个反应

:多页插件

你好! 我看到这里有人讨论过某种多页插件。 这还存在吗?有没有什么办法解决这个问题,还是我应该自己开插件? 谢谢!

Ju99ernaut

我做了一个简单的 indexedDB,但它也可以适配到其他存储类型 https://github.com/Ju99ernaut/grapesjs-indexeddb-ui 不过我打算弃用它,改用一个内置其他存储类型的新插件,并且界面和用户体验也更好。我计划在artf在#3206号提到的“PageManager”API发布后发布它,同时可能还有同期提到的其他插件正在开发中。

artf

是的,还在进行中(很遗憾我还没到),但PageManager肯定会放在核心里。

ClaudeCode

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

#32952021年3月1日作者 marcepoblet4 个回答
0 个反应

BUG(v0.16.41):带有可拖拽属性的按钮组件无法正常工作

版本: v0.16.41 你能重现演示中的bug吗? [ ] 是的 [ ] 不 预期的行为是什么? 当我们有一个属性为 data-gjs-draggable 的 false 按钮时,这个按钮不应在画布中被拖动。 详细描述那个漏洞 步骤将带有可拖拽属性的按钮组件设置为 false将按钮拖入其他组件内拖动按钮 目前的行为是什么? 步骤将带有可拖拽属性的按钮组件设置为 false将按钮拖入其他组件内按钮不应拖动 你能附上截图、截屏或实时演示吗?** [ ] 是的(附上视频) https://user-images.githubusercontent.com/64096863/109490335-da245880-7a66-11eb-81...

artf

我猜你做错了什么,你是怎么创建这些组件及其属性的?你甚至不应该在检查员里看到这些属性。

marcepoblet

@artf 我们的准则中没有做任何更改。唯一的区别是我们更新了GrapesJs的版本。 之前我用的是v0.16.18版本,运行正常,但现在我们把GrapesJs更新到v0.16.41后,按钮功能就不行了。

marcepoblet

我们用以下方式设置属性: editor.getSelected().attributes.attributes[“data-gjs-editable”] = 'false' editor.getSelected().attributes.attributes[“data-gjs-copyable”] = 'false' editor.getSelected().attributes.attributes[“data-gjs-droppable”] = 'false' edi...

#32932021年2月26日作者 eikerd2 个回答
0 个反应

Blockmanager:添加自定义类 gjs-block-category / gjs-title DIV

我有一份类别清单,想根据是否需要用不同风格标记一些类别。 理想情况下,我可以在 div 里添加一个类,类为 'GJS-title',这样它就会显示为'gjs-title required-field' 'this.editor.BlockManager.getCategories();' 返回了我所有块类别的数组,但我的问题是,我该如何选择一个来使用 .addClass() ? 如果我按“id”来判断,并且我把 ' this.editor.BlockManager.get('logos').addClass('required-field')' 这似乎不起作用。 选择 gis 块类别的 DIV 以实现 .addClass() 的最...

artf

你好@eikerd通过查看代码,目前我看不到其他方法可以自定义块类DOM,除非你自己用DOM做点什么(块渲染完成后)。 我可能会在下一个版本中把视图添加到分类模型中,所以你可以这样做: “''js const blockCat = 编辑器。Blocks.getCategories().filter(c => c.get('id') == 'ID-CAT')[0].view; blockCat.el.addClass('add-class'); ```

ClaudeCode

谢谢你举报,@eikerd。 关于Blockmanager:添加自定义类gjs-block-category / gjs-title DIVs,这个问题很棒。推荐的 StyleManager 方法是使用事件驱动的 API。 从这里开始: 查看你所在模块的[GrapesJS文档](https://grapesjs.com/docs/) 寻找“on()”事件监听器方法 大多数操作可以通过监听编辑器和组件事件来实现 常见模式: “JavaScript 留意变化 editor.on...

#32922021年2月26日作者 sudiptochoudhury3 个回答
1 个反应

每个组件在保存前有没有一个事件,组件可以监听?

非常感谢你提供这个图书馆。 背景:我正在构建一个编辑器,打算从我之前开发并在应用中使用的现有Vuejs组件中定义大部分组件。这些大多是基于界面的简单和复杂组件。例如,我有简单的 vuejs 组件,分别叫 su-form、su-field、su-label、su-input、su-radios、su-buttons、su-validations,以及使用简单组件如 su-login-form、su-registration-form 等的复杂 vuejs 组件。正如你可能猜到的,su-form、su-field 以及其他类似组件都有插槽,我会添加其他组件,以创建一个具有业务用例的实用组件。例如,我会在 su-form 的插槽中插入...

Ju99ernaut

我不确定每个组件是否都有这样的钩子,但你可以尝试利用组件的“toHtml”属性。这个问题已经在别处讨论过了,所以你可以在期刊中搜索,因为有不少。

artf

是的,你可以用自定义的“toHTML”/“toJSON”函数(模型中)来定义组件,以便自定义它们的输出

ClaudeCode

感谢你报告,@sudiptochoudhury。 存档前每个组件是否存在一个事件,组件可以监听?的问题似乎是竞态条件或状态管理时序问题。这通常发生在组件生命周期事件和DOM修改重叠时,导致状态不一致。 尝试什么: 添加setTimeout包装器以确保DOM已稳定: “JavaScript setTimeout(() => { 你在这里的行动 }, 0); 推荐的下一步步骤: 如果还没测试过,请用最新的GrapesJS版本测试 提供最小可重复的示例(CodeSandbox)—...

#32912021年2月25日作者 marcepoblet4 个回答
4 个反应

BUG(v0.16.41):图标工具栏上的复制图标也在修改原始元素

版本: v0.16.41 你能重现演示中的bug吗? [ ] 是的 预期的行为是什么? 重复的元素不应该影响原元素的变化。 详细描述那个漏洞 步骤:选择元素(文本、图片等)点击工具栏中的复制图标修改新重复的元素原始元素也被修改 https://user-images.githubusercontent.com/64096863/109187944-27f04680-7771-11eb-8ba4-1181ed56b08f.mp4 目前的行为是什么? 当某些元素被复制,且被复制的元素被修改时,原始元素也会被修改。 你能附上截图、截屏或实时演示吗?** [ ] 是的(附上了视频)

artf

谢谢大家的反馈,我知道这个bug,开发版已经修复了。我完全忘了发布它😬,我会尽量今天发布

devtechk

@artf 非常感谢!你帮我省了很多功夫 _ 我整个下午都在调试这个问题......顺便说一句,我查了npm,发现0.16.44版本已经不行了...... 你救了人。非常感谢!捐款,你值得拥有一切!❤️

aadilmehrajbhat

自“”葡萄“以来的回归问题:”0.16.34“'

#32902021年2月25日作者 marcepoblet3 个回答
0 个反应

当我们撤销图片时,changesCount参数应重置为零

版本: v0.16.41 你能重现演示中的bug吗? [ ] 不 预期的行为是什么? 当我们撤销图片时,changesCount参数应重置为零 详细描述那个漏洞 步骤:添加图片删除图片撤销更改 我们应该看到 changesCount 参数应该被重置为零。 目前的行为是什么? changesCount参数是递增的,而不是0。 你能附上截图、截屏或实时演示吗?** [ ] 是的(附上了视频) https://user-images.githubusercontent.com/64096863/109162404-ee124680-7756-11eb-9668-b1909b913831.mp4

GayathriGuru

嗨!@marcepoblet你能分享一下你用来定义 changesCount 变量以实现递增的代码部分吗?

artf

我就结束这段,因为我看不出这个功能有什么实质性的好处

ClaudeCode

谢谢你举报,@marcepoblet。 撤销图像时,changesCount参数应重置为零的问题似乎是竞态条件或状态管理时序问题。这通常发生在组件生命周期事件和DOM修改重叠时,导致状态不一致。 尝试什么: 添加setTimeout包装器以确保DOM已稳定: “JavaScript setTimeout(() => { 你在这里的行动 }, 0); 推荐的下一步步骤: 如果还没测试过,请用最新的GrapesJS版本测试 提供最小可重复的示例(CodeSandbox)——这有...

浏览所有主题