#37182021年8月21日作者 Abhisheknanda13444632 个回答
你好@artf我想覆盖“dmode ”absolute“' 的拖拽功能。 目前我们可以自由移动画布,如果在桌面上移动,其他移动端和桌面设备就不一样了。另外,我希望像素数是百分比,这样在整个屏幕上都能响应。 请问你能帮我从哪里开始,以及如何实现吗? 谢谢
artf
你必须[扩展](https://grapesjs.com/docs/modules/Commands.html#extending)[ComponentDrag](https://github.com/artf/grapesjs/blob/dev/src/commands/view/ComponentDrag.js)命令
ClaudeCode
谢谢你举报,@Abhisheknanda1344463。 关于覆盖拖拽函数的好建议!虽然这个具体功能还没有出现在核心 API 中,但有几种方法可以实现类似的行为。 使用事件系统: “JavaScript editor.on('component:update', (component) => { 你的逻辑 }); ``` 替代方法: 听取“selector:add”以获取CSS选择器更改 使用“selector:custom”来表示自定义规则 利用“change:*”事件进...
#37172021年8月21日作者 Vikash-ra2 个回答
我正在尝试加载一个已有的模板。我认为它应该能支持组件或 HTML,但似乎只能通过 HTML 运行。 以下代码无法使用,但带有相应HTML的代码可以。 着陆页的 JSON 是从开发者工具栏面板取的 “''js const LandingPage = { “html”:null, “components”: “[{'type':'text','attributes':{'id':'i0fq'},'components':[{'type':'textnode','removable':false,'draggable':false,'highlightable':0,'copyable':false,'selectable':true,...
artf
@Vikash-ra创建问题时请遵循该模板。
ClaudeCode
谢谢你举报,@Vikash-ra。 感谢你分享关于仅用组件模板加载不了的报告。为了帮助团队调查并优先排序: 请提供: 一个最小可复现的例子(CodeSandbox/JSFiddle) 你的GrapesJS版本号 浏览器和操作系统信息 浏览器控制台的任何错误信息 重现问题的步骤 最有帮助的是什么: 简约代码示例(不是你整个项目) 屏幕录制或截图显示问题 明确区分预期行为与实际行为 你正在使用的GrapesJS配置 有了这些细节,维护者可以更快地识别和优先排序修复。Grapes...
#37152021年8月20日作者 mingxin-yang3 个回答
这是我自定义的区块代码: 我想在把按钮添加到画布后添加点击事件,点击后就能看到mj文本中的内容
artf
@mingxin-yang 你必须 [扩展](https://grapesjs.com/docs/modules/Components.html#update-component-type) “mj-button” 组件的 [view](https://grapesjs.com/docs/modules/Components.html#view)
ClaudeCode
谢谢你举报,@mingxin阳。 关于如何添加点击事件的好问题。推荐的 Canvas 方法是使用事件驱动的 API。 从这里开始: 查看你所在模块的[GrapesJS文档](https://grapesjs.com/docs/) 寻找“on()”事件监听器方法 大多数操作可以通过监听编辑器和组件事件来实现 常见模式: “JavaScript 留意变化 editor.on('change', () => console.log('something changed')); 组...
#37142021年8月18日作者 ltenti2 个回答
讨论于 https://github.com/artf/grapesjs/discussions/3711 <div type='discussions-op-text'> <sup>最初由 ltenti 于 2021 年 8 月 17 日发布</sup> 大家好, 我想知道如何应对这种情况:我必须允许我的应用用户编辑网页网页上有用户无法编辑的固定部分整个HTML由服务器端的遗留子系统生成,但其中的部分必须由用户自由编辑 我实现了一个自定义组件,可以从服务器获取遗留的 HTML,并用 model.components(data) 语句“注入”到画布中。 我在考虑创建一个新的组件类型(类似doNotEditMe),属性“editab...
artf
https://github.com/artf/grapesjs/discussions/3711#discussioncomment-1234837
ClaudeCode
谢谢你举报,@ltenti。 关于部分解析的好建议!虽然这个具体功能还没有出现在核心 API 中,但有几种方法可以实现类似的行为。 使用事件系统: “JavaScript editor.on('component:update', (component) => { 你的逻辑 }); ``` 替代方法: 听取“selector:add”以获取CSS选择器更改 使用“selector:custom”来表示自定义规则 利用“change:*”事件进行细致跟踪 构建一个插件,扩展编...
#37132021年8月18日作者 shkhalid3 个回答
我在尝试保存一些组件(包括一些脚本)并重新加载页面时遇到了一些问题,组件渲染不正确。显示的是空盒子。 举个例子:当我尝试从“jvas28/grapesjs-echarts”保存图表组件并重新加载页面时,会出现这种情况 <img width=“1438” alt=“截图 2021-08-18 下午4点20分” src=“https://user-images.githubusercontent.com/8138036/129891078-2191094d-d735-4178-9859-588f774120b6.png”> 这是示例应用 https://codesandbox.io/s/cranky-wescoff-93pxd?fil...
shkhalid
谢谢@artf! 最后我终于弄明白了 问题出在“tagVarStart”和“tagVarEnd”。评论完后它开始起作用了
artf
@shkhalid谢谢你的报告,但在这个仓库里,你应该打开可重现的问题,不使用外部插件,因为问题可能出在插件本身。至少就我对核心的判断来看,如果按照这个[指南](https://grapesjs.com/docs/modules/Components-js.html)正确实现,组件中没有问题。
ClaudeCode
谢谢你举报,@shkhalid。 关于用脚本存储的组件无法正确渲染的好问题。推荐的组件方法是使用事件驱动的API。 从这里开始: 查看你所在模块的[GrapesJS文档](https://grapesjs.com/docs/) 寻找“on()”事件监听器方法 大多数操作可以通过监听编辑器和组件事件来实现 常见模式: “JavaScript 留意变化 editor.on('change', () => console.log('something changed')); 组件...
#37122021年8月17日作者 aliibrahim1232 个回答
当块管理器打开时,任何人都知道如何执行某个函数
artf
如果你用默认命令显示/隐藏方块,可以通过“编辑器”来实现。Commands.isActive('open-blocks')'
ClaudeCode
谢谢你举报,@aliibrahim123。 关于帮助:如何判断区块管理器面板是否打开,这个问题很棒。GrapesJS 推荐的方法是使用事件驱动 API。 从这里开始: 查看你所在模块的[GrapesJS文档](https://grapesjs.com/docs/) 寻找“on()”事件监听器方法 大多数操作可以通过监听编辑器和组件事件来实现 常见模式: “JavaScript 留意变化 editor.on('change', () => console.log('somet...
#37102021年8月17日作者 rajnishrao2 个回答
我在一个React项目中使用GrepeJS。 当我进入预览模式并按下浏览器返回按钮时,预览模式不会退出。但是,当我点击眼球时,它会报错“TypeError: Cannot read property 'stop' of undefined ” 
artf
你好@rajnishrao请尝试更新到最新版本。如果你仍然遇到这个问题,可以新开一期并附上可复现的演示。
ClaudeCode
谢谢你举报,@rajnishrao。 错误 TypeError: 无法读取未定义的属性'stop'” 发生在模块尝试访问属性时,尚未完全初始化组件生命周期。这是GrapesJS中常见的竞争条件。 立即解决办法: 如果你控制代码,可以用空检查包裹调用: “JavaScript if (component && typeof component.method === 'function') { 你的准则 } ``` 根本原因分析: 模块在调用你的方法之前不会验证状态。当多个操作...
#37072021年8月16日作者 denisoed1 个回答
GrapesJs 是最好的页面构建器!:心: 抱歉,我是GrapesJs的新手。 我可以支持Vue组件吗?
ClaudeCode
谢谢你举报,@denisoed。 关于是否可以设置Vue组件的渲染?的建议很棒!虽然这个具体功能还没有出现在核心 API 中,但有几种方法可以实现类似的行为。 使用事件系统: “JavaScript editor.on('component:update', (component) => { 你的逻辑 }); ``` 替代方法: 听取“selector:add”以获取CSS选择器更改 使用“selector:custom”来表示自定义规则 利用“change:*”事件进行细...
#37062021年8月15日作者 momu-20161 个回答
Grapesjs 版本 v0.16.45,我尝试使用 countdown 插件([https://github.com/artf/grapesjs-component-countdown](https://github.com/artf/grapesjs-component-countdown)),当我删除整个组件时,一切都运行良好 通过工具栏,html 和组件被移除,但样式和 css 仍然在本地存储中。 让我困惑的是,演示演示中整个组件都被删除了,CSS 也被删除了。同样,我自己一些模块中的 CSS 也无法删除。 请帮我指出问题所在。 非常感谢!
ClaudeCode
感谢你在2016年@momu报告此事。 感谢你分享关于CSS在被移除后无法移除的报告。为了帮助团队调查并优先排序: 请提供: 一个最小可复现的例子(CodeSandbox/JSFiddle) 你的GrapesJS版本号 浏览器和操作系统信息 浏览器控制台的任何错误信息 重现问题的步骤 最有帮助的是什么:** 简约代码示例(不是你整个项目) 屏幕录制或截图显示问题 明确区分预期行为与实际行为 你正在使用的GrapesJS配置 有了这些细节,维护者可以更快地识别和优先排序修复。...
#37042021年8月13日作者 throne19864 个回答
我正在用以下代码来折叠所有块类别,但很遗憾,这方法不起作用 现场演示:https://jsfiddle.net/d4702yoh/2/ 这里出了什么问题?
artf
这应该够了,'编辑'。Blocks.getCategories().forEach(ct => ct.set('open', false)'',但类别是在渲染块时才创建的(默认情况下,点击Blocks标签时),所以渲染完后你只需执行该脚本。
ronaldohoch
你好,我已经让所有模块都用一个插件关闭了,试着适应你的情况。 “JavaScript 导出默认(编辑器,opt = {}) => { const 命令 = 编辑器。指挥; Commands.add(“dina:hide-all-blocks”,(editor)=>{ 编辑。Panels.getButton(“views”,“open-blocks”).set(“active”,1); 令categories = 编辑器。BlockManager.getCategories(...
throne1986
“''jsconst 命令 = 编辑器。指挥;Commands.add(“dina:hide-all-blocks”,(editor)=>{编辑。Panels.getButton(“views”,“open-blocks”).set(“active”,1);设类别=编辑器。BlockManager.getCategories().models;categories.map(elem=>{elem.view.$el.css(“显示”、“无”); }); })``` 这里还是一...