问题 #851✓ 已解决提出于 2018年2月8日作者 maxtacco3 个反应

Promise 返回插件

快速解答作者 nashton1093

我也有类似的要求。如果对别人有帮助的话,我最后的解决方案是创建一个插件,然后加载我的其他插件; 编辑器配置只会引用一个插件,而该插件的插件选项会包含其他插件的加载选项。 插件代码; “''js 导出默认 Grapesjs.plugins.add(“async-plugins”, async(编辑器,opts) => { /*opts = {插件:[ ... ]pluginsOpts: { ... },渲染:真实 |false, // 如果未设置,则默认为true。onFinished: 异步(编辑) => {// 当异步插件完成后。},}; 如果这里使用“render”,请务必在编辑器配置中将“autorender”设置为fals...

阅读下方完整回答 ↓

问题

你好,@artf, 我遇到过一个案例,自定义插件需要在进行任何初始化前检查用户权限。做检查的方法会返回一个Promise,所以我必须等它解决后才能做任何操作。不幸的是,这会导致编辑器渲染时出现 raise 状态,UI 会进入奇怪的状态。为了解决这个问题,我必须把'editor.autorender'设为false,然后在插件初始化后手动渲染编辑器。目前这样还可以,但如果我有多个自定义插件,依赖某些异步逻辑,我不太确定该如何处理这种情况。

所以,如果 GrapesJS 能检查注册插件是否返回 Promises,并且只有在所有 Promise 都解决后才渲染编辑器,那就太好了。

谢谢你,这个项目很棒。

回答(3)

👍 最有帮助nashton1092019年7月13日

我也有类似的要求。如果对别人有帮助的话,我最后的解决方案是创建一个插件,然后加载我的其他插件; 编辑器配置只会引用一个插件,而该插件的插件选项会包含其他插件的加载选项。 插件代码; “''js 导出默认 Grapesjs.plugins.add(“async-plugins”, async(编辑器,opts) => { /*opts = {插件:[ ... ]pluginsOpts: { ... },渲染:真实 |false, // 如果未设置,则默认为true。onFinished: 异步(编辑) => {// 当异步插件完成后。},}; 如果这里使用“render”,请务必在编辑器配置中...

maxtacco2018年2月8日

此外,这可能需要GrapesJS的初始化方法返回Promise,而非编辑器,但这仅限于存在任何返回Promise的插件。

artf2018年2月9日

我必须先把'editor.autorender'设为false,然后在插件初始化后手动渲染编辑器。目前这样还行,但如果我有多个基于异步逻辑的自定义插件,我不太确定该如何处理这种情况

只需用一个变量作为标志,计入你的自定义执行逻辑,完成后你就可以渲染它。依我看,Promises的解决方案对这种东西来说简直让人不堪重负

相关问答

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

问题 #3496

成就:标记组件为脏

你想给GrapesJS添加什么? 组件应该能够标记自己为脏,触发“onbeforeunload”警告信息。 详细描述你的功能需求详细 我有一个(自定义)文本组件,用户可以输入任意文本。我把数据存储在服务器上,我想要自动保存。不过,我不希望服务器因为每一个字符都被联系到文本组件,...

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

问题 #554

避免悬停高光,避免选择某些组件

你好,@artf, 在提交拉取请求之前,我想听听你们对以下两项的看法。这些是为了满足我目前正在进行的一个项目的要求,但我希望它们能在 Grapesjs Core 中占有一席之地。防止某些组件出现悬停高亮效果。 组件已经有一个“可高亮”属性,用于虚线轮廓样式。我也在考虑用同一个属...

3 个回答更新于 2019年9月18日

问题 #1274

远程存储选项没有发送 $_POST JSON 结构

嗨,@artf! 我正在利用最新版本v.0.14.21,在我们的系统中适配你的内容构建器。我已经设置了以下StorageManager的配置: storageManager: { 类型:“远程”, stepsBeforeSave: 1, 自动加载:正确, 自动保存:错误, ur...

3 个回答更新于 2019年9月17日

问题 #6409

手机上无法拖动移动组件

葡萄JS版本 [x] 我确认使用最新版本的GrapesJS 你用的是什么浏览器? Chrome v133 可复制演示链接 https://jsfiddle.net/2hjdrb7L/1/ 描述一下那个虫子 如何复现这个漏洞? 用grapesjs v0.22.x和grapesjs...

4 个回答更新于 2025年6月23日

与此问题匹配的付费插件

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

查看全部插件

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

免费方案

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

浏览免费插件 →
高级方案

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

浏览高级插件 →

浏览插件分类

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