问题 #2205💬 已回答提出于 2019年8月20日作者 inaLar2 个反应

保存后文本组件转换为 Box

快速解答作者 inaLar1

嗨!这些信息非常有用——关于通过这种方式访问模型而不是通过DOM的。 我会去探索。我仍然不明白为什么当我把自定义组件放进文本组件时,gjs-comp-selected 类却会被存储在 innerHTML 里。也许这只是被发现的行为。 另外,我正在考虑移除自定义组件中的类属性(gjs-comp-selected),该组件的模型内为 onRender()。但区分父母和孩子的模型对我来说还是个新领域:)

阅读下方完整回答 ↓

问题

我有一个自定义组件,当我把它放进一个文本组件里(我用的是扩展原始文本组件的自定义文本组件)时,保存并重新加载HTML/CSS后,我遇到了同样的问题——文本组件会转换成一个Box。我用自定义属性,但无论哪个属性,组件类型都会从文本转换成默认。 附言:自定义组件在双击后可以编辑。

保存前:

'<div data-gjs-type=“text” data-highlightable=“1” data-text-extended=“Text”>插入 <span data-gjs-type=“custom-type” contenteditable=“false” data-gjs-textable=“true” >自定义合成测试</span>你的文本</div>

加载已保存内容时:

'<div data-gjs-type=“default” data-highlightable=“1” data-text-extended=“Text”>插入 <span data-gjs-type=“custom-type” contenteditable=“false” data-gjs-textable=“true” >自定义合成测试</span>你的文本'</div>

相关问题:https://github.com/artf/grapesjs/issues/761

回答(3)

inaLar2019年8月22日

嗨!这些信息非常有用——关于通过这种方式访问模型而不是通过DOM的。 我会去探索。我仍然不明白为什么当我把自定义组件放进文本组件时,gjs-comp-selected 类却会被存储在 innerHTML 里。也许这只是被发现的行为。

另外,我正在考虑移除自定义组件中的类属性(gjs-comp-selected),该组件的模型内为 onRender()。但区分父母和孩子的模型对我来说还是个新领域:)

inaLar2019年8月22日

@pouyamiralayi,是的,我做过完全一样的操作,效果很好,但我也设法在扩展文本组件的isComponent中使用了tagName(div, p, ... ),这在我这里也有效。 我现在就结束这个问题。

非常感谢你提供的所有内文!

干杯

pouyamiralayi2019年8月20日

你是在插件里定义自定义类型吗?

相关问答

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

问题 #2682

保存后更改文本元素标签

你好, 保存后重新加载HTML时,这段文字块会更换标签。 具体来说,一旦你插入文本块,CKeditor 会初始化在 div 上,进入 Edit 时,CKEditor 初始化在 P 标签上。 这是加载时的文本块 '<div data-gjs-type=“default” drag...

1 个回答更新于 2020年4月2日

问题 #4503

CKEditor 在添加原始 HTML 组件时使用的缺少内联样式

葡萄JS版本 [X] 我确认使用最新版本的GrapesJS 你用的是什么浏览器? 铬 v96 可复制演示链接 https://grapesjs.com/demo-newsletter-editor.html 描述一下那个虫子 如何复现这个漏洞?在控制台标签页打开开发者工具运行下...

4 个回答更新于 2024年8月6日

问题 #3365

图层名称范围上的contenteditable属性

你好@artf 我想知道为什么图层的名称范围会有一个“contenteditable”属性。 如果我没记错的话,grapesJs 上并没有实现任何机制,可以在刷新页面后真正更改图层名称。 这对用户来说可能会有点困惑。 '''html <div class=“gjs-layer-...

4 个回答更新于 2021年4月20日

问题 #2807

:启动编辑器“fromElement”在标签内创建组件,数据-gjs-type=“text”

你好, 我目前正在尝试启动编辑器“fromElement”,在容器内设置以下 html: 但执行时,grapesjs 在 '' 标签内创建组件<p>,即使将 'data-gjs-type' 属性设置为 'text'。我想做的是把待编辑的段落作为一个整体组件呈现。 你可以在这里看...

3 个回答更新于 2023年7月26日

与此问题匹配的付费插件

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

查看全部插件

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

免费方案

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

浏览免费插件 →
高级方案

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

浏览高级插件 →

浏览插件分类

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