GrapesJS 问题

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

找到 3,464 个问题

#18942019年3月14日作者 jwilson-lyonscg2 个回答
0 个反应

自定义特性文档示例无法正常工作

具体来说: https://grapesjs.com/docs/modules/Traits.html#define-new-trait-type 首先,'keyUp' 事件引用的是 'onChange',而函数名实际上是 'onChange'。接下来,即使你修正了这个问题,每当我修改“this.model.get('value')”时,它仍然会被评估为空值/空值。我唯一能得到实际值的方法是引用它在“e.srcElement.value”。不过这似乎不是正确的做法,所以我猜是“get()”代码的问题不正常。

jwilson-lyonscg

算了。我之前误解了语法。我之前没意识到“onChange”和“onValueChange”显然是两种不同的无关方法。我不太清楚“onChange”具体是做什么的。

lock[bot]

由于关闭后没有近期活动,该帖子已被自动锁定。请为相关漏洞开启新一期。

#18932019年3月14日作者 trivago-vgarcia3 个回答
1 个反应

所有方块的样式必须相同

我们使用的是blockManager,正如你在codesandbox发布的示例中看到的,遵循与自定义渲染相关的文档。对我们来说,意想不到的是,每次用户编辑某个块的样式时,所有块都会更新为该样式,因为样式被设置为块中使用的类,这里是 .row-cell。这是预期的行为吗?我们怎么避免? 谢谢! 参考文献: https://codesandbox.io/s/wkr3oqxpw8 https://grapesjs.com/docs/modules/Blocks.html#custom-render

artf

首先,你的例子/问题和块的自定义渲染无关(你用它来自定义块的界面,而不是画布中的组件)。 解决方案是将该类设为私有(https://github.com/artf/grapesjs/issues/1566#issuecomment-437167731)

trivago-vgarcia

@artf 谢谢你的回复!抱歉,因为举例不够清楚。这种情况在每个案例中都会发生,我的意思是,即使它们在默认模板中定义了,而且不仅仅是在添加新选择器时才会出现。所以,使用“selector:add”并不能解决所有情况。 你还有其他建议吗?谢谢!

artf

这种情况在每个案例中都会发生,我的意思是,即使它们在默认模板中定义了,而且不仅仅是在添加新选择器时才会出现。所以,使用selector:add并不能解决所有情况。 即使通过解析添加新类,“selector:add” 也会被触发。所以,把它作为插件放置,这样在模板加载前就会被连接,监听器会传递任何新类

#18922019年3月14日作者 sanjib002 个回答
0 个反应

Flexbox列无法正常工作。

你好@artf, 我们用的是flexbox模块。问题是,当我们尝试调整中间列的大小时,会影响其他所有列,比如自动缩小左列的宽度。它应该只影响右侧列。 要创建此场景,请添加三列并尝试调整中间列(https://codepen.io/sanjib00/pen/wOpVNv)。 你能给点建议我们怎么解决这个问题吗? [](网址) ![Flexbox_issue](https://user-images.githubusercontent.com/8086390/54337389-f734a680-4658-11e9-9041-28a2393ba853.png)

artf

这就是Flexbox在调整中间列大小时的工作原理。你想实现的有点不同,需要另一种实现方式,所以我建议你自己创建网格组件

lock[bot]

由于关闭后没有近期活动,该帖子已被自动锁定。请为相关漏洞开启新一期。

#18912019年3月14日作者 jwilson-lyonscg3 个回答
0 个反应

无法创建新的按钮组件

我在为一个元素创建一个新组件时遇到了<button>困难。我到底漏掉了什么?这里是不是出了什么问题?如果我把它改成“<input>''元素,效果很好:

jwilson-lyonscg

经过更多尝试,似乎我的组件结构是正确的,但我的按钮块却不正常工作。按钮块是这样的: 当将该方块拖入画布时,它未被识别为按钮组件。不过当我改成这样时: 然后就正常工作了。这是个bug还是设计成这样?我在文档里找不到任何关于为什么会这样工作的说明。

artf

我认为问题在于对“内容”密钥的误解。 当你宣布一个封锁时 “''js 编辑。BlockManager.add('button-block', { // ... 内容:{ 类型:“按钮”, 可掉落:错误, 属性:{ 标题:“你好”, 类型:“提交”, }, }, }); 但当你在组件中使用“content”时,它表示使用静态内容(比如RTE中使用的),所以编辑器不会解析它,在JSON中会以字符串形式存储。 所以这个组件对象: “''js { 可拖拽:确实, Droppable...

lock[bot]

由于关闭后没有近期活动,该帖子已被自动锁定。请为相关漏洞开启新一期。

#18902019年3月13日作者 MACscr2 个回答
0 个反应

禁用拖曳功能,而不是功能

我想创造属于自己的拖拽和放置能力。我很喜欢 Grapesjs,但真的希望能更好地控制在编辑器区域里拖拽元素的工作。有没有办法禁用内置的方法,这样我就能自己创建?我知道设计模式在路线图上,但我现在需要这个功能,所以我自己也要添加,不过首先我得阻止 Grapesjs 的默认功能干扰它。我自己的自定义应用里已经有拖拽定位和调整大小元素完美运行,所以我知道只要能阻止 Grapesjs 的原生功能干扰,就能让它正常工作。 我觉得这不是简单的操作:data-gjs-draggable=“false” 另外,也许我可以保持这个为真,并覆盖处理该功能的函数? 目前我用jquery的可拖拽/可调整大小类来做我自己的应用。我只需对添加的任何元素进行封...

artf

对于组件本身,当你点击移动图标时,它会运行['tlb-move' command](https://github.com/artf/grapesjs/blob/dev/src/commands/index.js#L111),所以你可以通过添加一个带有相同ID的新命令来覆盖它,但遗憾的是,没有简单的方法来改变方块的拖拽行为。 附言:我开始开发设计师模式,开发进展缓慢,但至少开始了,希望很快能发布后续问题

lock[bot]

由于关闭后没有近期活动,该帖子已被自动锁定。请为相关漏洞开启新一期。

#18892019年3月13日作者 Nagavijay-kolla2 个回答
0 个反应

如何在所需位置/索引处附加子组件

例如, 我有一个父组件,这个父组件有4个子组件。这里用trait功能,我想把第三个子组件也移到第一位置。 我可以通过使用 component.remove() 将组件从现有位置移除,然后用 component.append(ref of removecomponent) 将其添加到父位置,从而将组件从任意位置移动到最后。所以它正在向最后移动。 现在我想在特征值变化时将一个子组件从一个位置移动到另一个位置 你能给我一些建议吗? 提前感谢大家。

artf

在选项中使用“at”作为索引,例如:'component.append(comp, { at: 0 })' 将 'comp' 置为第一个元素

lock[bot]

由于关闭后没有近期活动,该帖子已被自动锁定。请为相关漏洞开启新一期。

#18882019年3月13日作者 RobertoCorreale3 个回答
0 个反应

在画布内添加自定义HTML

你好, 我用 Grapes 导出一个包含所有信息的自定义 json,而不是用 HTML 和 CSS。 为此,我解析存储在localStorage上的gpjs组件。 现在我需要自定义组件在Canvas中的渲染方式。 举个例子,我有一个输入组件,包含两个特征(标签和值),我想在画布里渲染它,标签特征作为<label>标签,value作为标签中的占位符<input>。 当然我可以用自定义视图,但在localStorage里这样做会保存在对象里的标签标签,不过我想避免这样,因为导出所有画布代码时,我只期望有 '''json { “输入”: [ {“label”: “lblValue”}, {“value”: “traitValue”} ]...

artf

我认为>原因是因为在画布内添加新节点时,葡萄无法计算正确的顺序。 没错,顺序是基于模型中的分量,而不是视图。所以,为了弄清楚,<label>你在“updateComponentView”里添加的那个“只是画布用的,你的JSON结构里不需要,对吗?

no-response[bot]

由于我们请求原作者提供更多信息未获回应,本期已自动关闭。仅凭当前期刊中的信息,我们没有足够的信息采取行动。如果您有答案或找到我们需要的答案,请随时联系我们,以便我们进一步调查。

lock[bot]

由于关闭后没有近期活动,该帖子已被自动锁定。请为相关漏洞开启新一期。

#18872019年3月13日作者 sakshigarg93 个回答
0 个反应

获取特定 gjs-data-type 的 JSON

我想导出只包含特定 gjs-data-type=“img” 的 JSON 我正在尝试,但没有任何结果:

prashant2018

请附上包含这段代码片段的文件名吗?如果我没记错的话,它确实是在面板/index.js

sakshigarg9

是的

sakshigarg9

感谢@prashant2018使用编辑器。DomComponents.componentById.image 我成功获得了所需的 JSON

#18862019年3月13日作者 sdrebel2 个回答
0 个反应

如何在面板内的按钮创建下拉菜单?

我正在点击按钮时尝试创建一个下拉菜单。 我可以用ul、li在按钮上添加数据。除此之外,还有其他方法吗? 例如:当我点击文件按钮时,应该会显示相应操作,比如打开、关闭等。

artf

按照问题模板,更好地解释你的背景(你说的是组件吗?编辑器界面??)

lock[bot]

由于关闭后没有近期活动,该帖子已被自动锁定。请为相关漏洞开启新一期。

#18852019年3月12日作者 ghost3 个回答
1 个反应

将存储管理器请求方法更改为 PATCH

嘿,存储管理器支持把请求方式从发布到补丁更改@artf吗? 我在文档里也没看到这点。

tranle13

你好@artf!我刚开始用GrapesJS(顺便说一句,插件很棒,非常感谢!),我想知道这个插件有没有被添加?

rukavina

:+1: 根据源代码,它不被支持,但肯定应该支持。语义上,POST 创建资源,而存储实际上是在更新资源。所以我认为PUT或PATCH更合理。 无论如何,最好的方式是让你在发送“更新”请求时可以自行决定使用哪种方法。

artf

无论如何,最好的方式是让你在发送“更新”请求时可以自行决定使用哪种方法。 我同意...... 我可能会在下一个版本中添加这个选项(storageManager 模块): “''js storageManager: { ... 传递自定义选项以获取API(远程存储) 你可以传递一个简单的对象:{ someOption: 'someValue' } 或者一个返回 并 对象添加的函数: currentOpts => { return currentOpts.method ===...

浏览所有主题