问题 #1912💬 已回答提出于 2019年3月21日作者 simplecommerce0 个反应

自定义组件默认子节点

快速解答作者 artf

@simplecommerce一个带有默认子节点的自定义组件工作示例(它使用本地存储) https://jsfiddle.net/t5yw48cs/ 试着检查一下你存储/加载模板的方式,也许问题就在这里 https://grapesjs.com/docs/modules/Storage.html#store-and-load-templates

阅读下方完整回答 ↓

问题

你好, 我正在尝试理解如何实现以下目标。创建一个带有默认内容的组件作为子节点。创建一个方块,将该组件添加到画布中。将组件子编辑为其他内容并保存HTML结果。稍后在编辑器中重新加载组件并继续编辑。 我的问题如下:我尝试过在默认情况下使用“components”和“content”。我尝试在组件视图的“init”函数中定义一些自定义逻辑,只有在没有组件存在时才添加默认值。 这两种方法都不起作用,起初有效,但如果我编辑文本,保存值,抓取HTML并重新导入,或者用编辑器的“组件”选项重新加载到画布中,默认值会随编辑内容一起插入(作为子节点)。 我不明白为什么。我还注意到,这种逻辑只适用于实际组件,不适用于文本节点,因为 comps.length 不会将文本节点检测为子节点。 我只能通过以下操作解决了这个问题: 组件长这样: 但我认为这可能不是最好的做法。 我想知道有没有人有什么建议,或者能告诉我他们是怎么做到的? 谢谢!

回答(2)

lock[bot]2020年3月27日

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

相关问答

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

问题 #1817

在编辑器渲染块时更改 HTML 内容

你好@artf 我有一个区块进入了区块管理器 和上面的脚本一样,我希望在该块渲染到界面的同时添加动态HTML内容。 我知道我不需要改变DOM。但我需要用模型来更改,但我不知道怎么用 ID/类别的模式来更改。 你能帮我吗?我该怎么实现?

3 个回答更新于 2020年2月22日

问题 #828

组件的“添加”事件触发次数不同

你好, 我注意到如果我在自定义组件中添加以下代码,事件触发方式会根据是从块拖放还是从画布拖放的新子组件而不同。 “JavaScript ... view: defaultView.extend({ init() { this.listenTo(this.model.compon...

2 个回答更新于 2019年9月18日

问题 #1959

在自定义按钮中编辑 innerHTML

大家好, 我正在尝试更改按钮组件中的文本,但无法编辑它。我添加了这个类型: 我添加了可编辑的真实参数,但不起作用 然后把按钮添加到组件管理器里 有什么办法可以绕过这个问题吗? 谢谢!

3 个回答更新于 2020年4月15日

问题 #1696

特质首次出现在自定义组件的拖拽中

你好,artf,我创建了自定义组件并为它添加了特征,当拖动这个组件到编辑器并选择它时,设置特征是正常工作的。 问题是,当将同一个组件拖到旧组件后面到编辑器并选择设置特征时,默认特征(ID,标题)会只显示,这是我实现的代码 对于创建组件: this.editor.BlockMan...

3 个回答更新于 2020年4月15日

与此问题匹配的付费插件

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

查看全部插件

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

免费方案

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

浏览免费插件 →
高级方案

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

浏览高级插件 →

相关教程

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

全部教程 →

浏览插件分类

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