自定义组件的递归视图更新
问题
你好, 我定义了一个自定义类型,比如: “JavaScript 编辑。DomComponents.addType('customType', { 型号:{ 默认值:{ 类型:'customType', 标签名称:'customTag', 可文本:1, 可拖拽:正确, 可拖拽:['p', 'div', 'span'] }, }, isComponent(el: HTMLElement) { 令结果; const tag = el.tagName; if (tag == 'CUSTOMTAG') { 结果 = { 类型:'customType', 标签名称:tag.toLowerCase(), }; } 返回结果; }, 浏览量:{ async onRender(elem: any) { let element: HTMLElement = elem.el; waitit.getContent(element); }, async getContent(element: HTMLElement) { 令 path = element.getAttribute('href'); 如果(路径) { res = await apiCall.loadData(path); } res.结果包含html。 它也可以包含 cutomTag 元素。 element.innerHTML = res....
回答(3)
好的。我找到了一个变通办法。既然这个问题太具体了,我就结束了这个问题。 感谢大家的支持。
如果你做的是“element.innerHTML = res.result”;你只需要把内容放成静态内容,编辑器不会解析成组件,你可能需要的是更新模型“model.components(res.result)” 我建议你多关注[组件工作原理](https://grapesjs.com/docs/modules/Components.html#how-components-work),看起来你还不太清楚模型和视图的区别......
谢谢你的回复。 目标是保持模型为“<customTag></customTag>'',内容渲染为静态。然而,我没有找到在渲染时对静态内容做出反应的方法。这也是我想把模型和视图分开的原因,这样源代码里就有“customTag”。
相关问答
通过相似的问题讨论继续研究。
问题 #2329
Canvas 会在 Traits 值变更事件后清除组件渲染
我创建了自定义组件和块,但当特征值发生变化时,渲染的元素会在画布上变得隐形,直到重新加载。 所以每当 ''' this.components('<app-body props='${value}'></app-body>');“这行被执行后,加载的方块将变得不可见或未渲染。我找...
问题 #2549
更新属性变更的组件视图
大家好, 我正在尝试创建一个组件,它会根据属性值更新视图 “JavaScript 编辑。DomComponents.addType(“price-value-type”, { isComponent: el => { if (el.tagName == “div” & el.h...
问题 #509
跨度不能作为文本编辑
你好,Artf, 我在导入一些HTML模板时遇到了问题。起初我无法看到跨度文本。但在帮编辑重新整理后,我无法将它们作为文本进行编辑。 ' 让 domc = this.editor.DomComponents; 让textType = domc.getType(“text”);...
问题 #5232
工作者 - 无头“文档未定义”
葡萄JS版本 [X] 我确认使用最新版本的GrapesJS 你用的是什么浏览器? 114.0.5735.133 可复制演示链接 不可能添加工蚁来繁殖。 描述一下那个虫子 如何复现这个漏洞?添加一名网页工作人员。在工作者内部初始化 GrapesJS,并设置“无头”选项。添加一个带...
与此问题匹配的付费插件
根据问题关键词和标签相关性精选,助你更快交付。
正在加载付费插件推荐……
浏览插件分类
直接跳转到市场上的插件分类页面。