问题 #2461💬 已回答提出于 2019年12月20日作者 obrazkow2 个反应

如何将样式或特征应用到所选组件的父元素或子元素上

快速解答作者 pouyamiralayi1

@obrazkow 你可以这样访问父节点:“component.parent();” 对于子节点:“const collection = component.components();”我对 Trait 有个很大问题,无法更新 img 的 src。 干杯!

阅读下方完整回答 ↓

问题

比如我有一个组件图像,它包裹在 div 里。 我想为图片做包含多个属性(水平位置、边界半径等)的样式 更新水平位置时,需要更新当前元素 - div 当更新边界半径时,需要更新子元素——img。 另外,我用Trait遇到了很大问题,无法更新IMG的src。 我在 Trait 加了 listener,变更时给 img 应用值,然后 div 和 img 把 src 一起用,但这不是个好办法。 导出默认值(编辑器)=> { 编辑。TraitManager.addType('image', { onEvent({ elInput, component, event }) { component.view.el.querySelector('img').src = elInput.value }, }); } 你能给我一些解决办法吗?

回答(3)

pouyamiralayi2019年12月21日

@obrazkow 你可以这样访问父节点:“component.parent();” 对于子节点:“const collection = component.components();”我对 Trait 有个很大问题,无法更新 img 的 src。 干杯!

pouyamiralayi2019年12月21日

用你的解特质,不知道src值和输入在初始化编辑器阶段会是空的。

我不明白你在说什么!

你怎么看我用初始化方法覆盖目标的解决方案

你用高级解决方案处理了一个非常简单的用例,我个人不建议为这种情况定义自定义特征。 干杯!

obrazkow2019年12月21日

@pouyamiralayi 我就是这么做的,但用这种解决方案,选中的组件只需属性或样式,只需子组件。

相关问答

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

与此问题匹配的付费插件

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

查看全部插件

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

免费方案

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

浏览免费插件 →
高级方案

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

浏览高级插件 →

浏览插件分类

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