PageKit — 可自托管的 GrapesJS 建站工具,附完整源码。 获取抢先体验

问题 #6290💬 已回答提出于 2024年11月4日作者 svex991 个反应

从项目数据加载数据源时,数据源会被忽略

快速解答作者 artf❤ 1

你需要等编辑准备好再做。 “''js editor.onReady(() => { console.log(“数据来源总数应为1:”,编辑。DataSources.getAll().length) console.log('test-source should exist:', editor.DataSources.get(“test-source”)); }); ```

阅读下方完整回答 ↓

问题

GrapesJS 版本

  • 我确认使用最新版本 GrapesJS

你用的是什么浏览器?

Firefix v132.0

可复制演示链接

https://jsfiddle.net/skdegqun/4/

描述一下那个虫子

如何复现这个漏洞?

  1. 运行小提琴的日志可以看出,编辑器初始化时传递的数据源未被加载。

预期的行为是什么? 将项目数据源加载到编辑器数据源管理器(editor.DataSources)

目前的行为是什么? 当编辑器加载项目数据时,数据源并未被加载,而是数据源列表是空的。

这个问题既在编辑器初始化时传递项目数据,也在从远程存储加载项目数据时出现(虽然在小工具里重现起来稍微难一些,但希望修复了第一个情况能解决这个问题)。我最初是通过从远程存储加载数据发现这个bug的。

行为准则

  • 我同意遵守本项目的行为准则

回答(2)

artf• 2024年11月5日

你需要等编辑准备好再做。 “''js editor.onReady(() => { console.log(“数据来源总数应为1:”,编辑。DataSources.getAll().length) console.log('test-source should exist:', editor.DataSources.get(“test-source”)); });

GJS Helper• 2026年5月17日

你遇到的问题是GrapesJS DataSources模块在编辑器初始化或从存储加载时,不会自动从projectData中的dataSources属性中水化状态。虽然projectData用于加载核心组件、样式和资源,但DataSources模块需要显式填充。 根本原因: GrapesJS核心editor.load()方法负责处理projectData(初始化时传递或从存储中获取),主要关注加载主画布内容(组件)、样式和资源。其他专业模块,如DataSources,通常需要手动填充,或设有专门的集成点来从整体项目结构加载相应数据。在这种情况下,DataSources模块没有自动机制直接从pr...

相关问答

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

与此问题匹配的付费插件

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

查看全部插件

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

免费方案

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

浏览免费插件 →
高级方案

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

浏览高级插件 →

相关教程

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

全部教程 →

浏览插件分类

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