问题 #2007💬 已回答提出于 2019年5月10日作者 kaoz701 个反应

向组件添加新特征并更新现有特征

快速解答作者 kaoz701

@Lakshit-Singhal 在这种情况下,我认为最好的选择是创建一个自定义插件,在初始化 GrapesJS 之前,先调用 API,获取这些值,并通过插件的选项在初始化函数中传递,这样这些值在特征初始化时就能显示出来。查看关于如何[创建自定义插件](https://grapesjs.com/docs/modules/Plugins.html#basic-plugin)的文档,或者看看我的插件:[GrapesJS Bootstrap 4](https://github.com/kaoz70/grapesjs-blocks-bootstrap4)和[GrapesJS Swiper Slider](https://github.co...

阅读下方完整回答 ↓

问题

我在修改它们的特性之前创建了一些自定义组件(比如,我为它创建了一个新的特性),这些组件不会包含新的特征。如果我把一个新组件拖到编辑器里,它就会显示它。

繁殖步骤: 1)创建自定义组件并编译代码 2)将此自定义组件拖入编辑器 3)将更改保存到数据库中 4)通过添加新特征修改组件并再次编译 5)从数据库加载组件 6)加载的组件不会有新的特性

我会加载并保存所有数据到数据库:样式、CSS、组件和html。

load(keys, clb, clbErr) { 模型加载 const content = _model.template[_language.locale]; 删除content.assets;如果有资源,请删除 CLB(内容); },

有没有办法让加载的组件知道这些特性的变化?

回答(3)

kaoz702019年11月19日

@Lakshit-Singhal 在这种情况下,我认为最好的选择是创建一个自定义插件,在初始化 GrapesJS 之前,先调用 API,获取这些值,并通过插件的选项在初始化函数中传递,这样这些值在特征初始化时就能显示出来。查看关于如何[创建自定义插件](https://grapesjs.com/docs/modules/Plugins.html#basic-plugin)的文档,或者看看我的插件:[GrapesJS Bootstrap 4](https://github.com/kaoz70/grapesjs-blocks-bootstrap4)和[GrapesJS Swiper Slide...

artf2019年5月12日

这是因为编辑器还将特征信息存储在组件中。你可以在扩展组件并更新其 toJSON 方法时删除这些信息 “''js const typeModel = domc.getType('my-type').model; domc.addType('my-type', { 型号:{ ... toJSON() { const result = typeModel.prototype.toJSON.apply(this); 删除result.traits; 返回结果; } } }) ``` 附言:我想我会在下一个版本中移除 JSON 中的特征。也许以前很多版本会有意义,但现在我甚至不建议把东西存进Trait...

ahmedeldeeb25-zz2019年5月12日

@artf这移除了自定义特质!!正如我在#2007中提到的

相关问答

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

问题 #2526

自定义存储:自动加载未触发

版本:grapes.min.js 0.15.10 你好, 我正在使用自定义存储来从文本区加载和存储json数据。 使用自定义存储似乎不支持自动加载选项。相反,我必须手动触发 editor.load(),但它似乎会更新编辑器,从而干扰 noticeOnUnload 选项(该选项在...

3 个回答更新于 2021年10月14日

问题 #3406

如何创建自定义存储管理器?它不会在重新加载页面后从Canvas中设置保存数据

大家好,我想把 Canvas 上的数据保存到 Redux 存储,这样可以,但重新加载页面后,存储加载方法没有把我的数据设置为构建器(Canvas),我不知道问题出在哪里,如果有人有解决办法请告诉我。 代码示例: “''js Grapejs.init({ .../// stora...

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

问题 #3347

我怎样才能获得无压缩的 JS 代码以便编辑?

你好,感谢你帮我解答这个问题。我想用自己的JSEditor来编辑html、css和js。 1、首先,我用 'getHtml', 'getCss', 'getJs' 在我的 JSEditor 里显示代码。我发现JS代码是压缩的。我怎样才能获得无压缩代码? 我用的是'编辑器'。Co...

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

问题 #2670

编辑器中没有显示自定义块的HTML类名称

我下面是这样添加了我的方块 然后把这个块状拖拽到画布上,用“export-template”命令显示HTML代码。 👆好吧,这正是我预料的。 但是,HTML 类不出现在编辑器的元素上,所以它没有应用在 .main-title 的样式上。 <img width=“793” al...

1 个回答更新于 2020年3月20日

与此问题匹配的付费插件

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

查看全部插件

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

免费方案

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

浏览免费插件 →
高级方案

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

浏览高级插件 →

浏览插件分类

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