在编辑自定义组件内容时重置特性
@artf,关于“选择”,我没能在同一个流程中连接内容变更并让它在特质变更时生效,也没能通过编辑文本/内容手动更改。手动更改后没能同步特性,但我设法让它正常工作了。自定义文本组件完全没问题。 至于上次发布的文档,我现在正在看,看起来非常好,但我发帖时还没看到。 可能只有我这样,但我通过榜样学习,所以更多的例子和用例总是加分项。 我知道产品是开放的,也很感谢你的努力。我希望自己能获得更多知识,并在不久的将来有所贡献。 干杯。
阅读下方完整回答 ↓问题
你好,
我有一个自定义组件,内容可以通过切换特性选择选项来更改,也可以像文本组件类型那样在画布内渲染时进行编辑。 有没有简单的方法可以在编辑组件时重置与特质相关的属性?
“''js 型号:{ 默认值:{ 类型:“标签”, 标签名称:“span”, 可掉落:0, 可编辑:1, 可文本:1, 特质:[{ 类型:“选择”, 标签:“自定义类型”, 名称:“customType”, 选项:customTypeOptions, }], }, toHTML() { return this.get('content'); },
浏览量:{ 事件:{ 焦点:“重置特性”, }, reseTrait() { } }
回答(3)
@artf,关于“选择”,我没能在同一个流程中连接内容变更并让它在特质变更时生效,也没能通过编辑文本/内容手动更改。手动更改后没能同步特性,但我设法让它正常工作了。自定义文本组件完全没问题。
至于上次发布的文档,我现在正在看,看起来非常好,但我发帖时还没看到。
可能只有我这样,但我通过榜样学习,所以更多的例子和用例总是加分项。
我知道产品是开放的,也很感谢你的努力。我希望自己能获得更多知识,并在不久的将来有所贡献。
干杯。
你可以在组件的内容道具上附加一个事件监听器,然后在回调中取该特征或更改特征的值道具,见下面的示例[摘自文档](https://grapesjs.com/docs/modules/Traits.html#updating-traits-at-run-time) “JavaScript 让我们更新输入组件中定义的“类型”特征的“选项” const component = editor.getSelected(); component.getTrait('type').set('options', [ { id: 'opt1', name: 'New option 1'}, { id: 'opt2...
谢谢你,Zachary1748,但我不能用在我这边。也许我没解释清楚。 我有一个自定义组件。 组件内容可以通过三种方式更改:
- 拖拽到画布中(你会弹出一个选项窗口)
- 从设置中(也通过选项选择)
- 在画布内编辑其文本
总之,我觉得我找到了一个解决方案——我创建了一个自定义数据类型,并将事件绑定到其更改上,而不仅仅是内容更改。但我还在测试。
相关问答
通过相似的问题讨论继续研究。
问题 #2867
在 textNodes 中不能跳出 html 字符吗?
你好, 我们在 grapesjs 实现中使用了一些 Twig 模板功能。 比如:{% 如果变量 == “value” %}<b>text</b>{% endif %} 但由于 src/dom_components/model/ComponentTextNode.js 中的 to...
问题 #1254
AddInput in domcomponent for html conditional it work work grapesjs 0.10.7 版本
你好,Artur, 首先,感谢你分享这样一个很棒的项目:) 我想告诉你我遇到的一个问题。 你在#208 issue中为addType的代码评论了一下。 “JavaScript var textnodeType = domc.getType('textnode'); domc.a...
问题 #705
渲染元素的拖拽占位符
你好!我在翻代码,想在拖动元素时实现占位符效果?拖拽方块已经有类似的做法了。 如果我想添加什么来实现这个效果,我需要修改或挂钩到什么方法?我在画布上没有看到元素的 startDrag 选项。 类似:http://gridstackjs.com/
问题 #2549
更新属性变更的组件视图
大家好, 我正在尝试创建一个组件,它会根据属性值更新视图 “JavaScript 编辑。DomComponents.addType(“price-value-type”, { isComponent: el => { if (el.tagName == “div” & el.h...
与此问题匹配的付费插件
根据问题关键词和标签相关性精选,助你更快交付。
正在加载付费插件推荐……
浏览插件分类
直接跳转到市场上的插件分类页面。