问题 #581💬 已回答提出于 2017年11月28日作者 ppisecky1 个反应

阅读组件相关事件

快速解答作者 ppisecky1

@artf谢谢你的回答。不过我想找一个更通用的例子,说明是否发生了变化以及具体发生了什么——比如这样: “JavaScript editor.on('component:update', model => { 如果 (model.isChanged()) { //.... } if (model.isChanged('style:font-size')) { //.... } var changes = model.getChanges(); }); ``` 我们需要跟踪项目中组件的变化,所以需要更通用的东西。 你能不能解释一下,为什么我对组件做哪怕是很小的更改时,会触发这么多“组件更新”事件(几乎总是针对看起来像是各种组件触发超...

阅读下方完整回答 ↓

问题

[Editor API wiki](https://github.com/artf/grapesjs/wiki/API-Editor) 列出了一组可以监听的组件相关事件(例如 'component:add', 'component:update')。然而,没有提及监听者接收到的事件对象类型以及它们的结构(它们拥有哪些属性以及能包含哪些值)。

当组件更新(例如字体大小更改)时,我们需要能够捕捉事件、处理并做出反应。你能举个例子说明如何判断组件发生了哪些变化吗?每次触发“component:update”事件时都会有变化吗(这个事件经常被触发,为什么会这样)?每个事件是否都会收到组件模型,如“component:add”文档附近提到的?如果不是:事件对象的结构是什么?

提前感谢任何帮助 :+1:

回答(3)

ppisecky2017年11月30日

@artf谢谢你的回答。不过我想找一个更通用的例子,说明是否发生了变化以及具体发生了什么——比如这样: “JavaScript editor.on('component:update', model => { 如果 (model.isChanged()) { //.... } if (model.isChanged('style:font-size')) { //.... } var changes = model.getChanges(); }); ``` 我们需要跟踪项目中组件的变化,所以需要更通用的东西。 你能不能解释一下,为什么我对组件做哪怕是很小的更改时,会触发这么多“组件更新”事...

artf2017年11月30日

感谢@ppisecky指出,我更新了源代码,但基本上任何组件相关事件都会接收触发的模型。 关于你的“字体大小”情况,你可以设置这个监听器 “''js editor.on('component:styleUpdate:font-size', model => console.log('Font size: ', model.getStyle()['font-size']) );

lock[bot]2019年9月18日

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

相关问答

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

与此问题匹配的付费插件

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

查看全部插件

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

免费方案

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

浏览免费插件 →
高级方案

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

浏览高级插件 →

相关教程

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

全部教程 →

浏览插件分类

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