#32752021年2月18日作者 confettidc2 个回答
你好, 有没有可能限制掉落方块的次数?例如,形式块和只被丢弃一次。 谢谢。
theSC0RP
你好,@confettidc,你可以尝试做类似的操作,比如设置一个计数变量,当添加某个类型的块时更新它,如果满足计数条件,就移除新添加的块。 请务必查看[API Reference](https://grapesjs.com/docs/api/)。
ClaudeCode
谢谢你举报,@confettidc。 关于限制掉落方块次数的好问题。GrapesJS 推荐的方法是使用事件驱动 API。 从这里开始: 查看你所在模块的[GrapesJS文档](https://grapesjs.com/docs/) 寻找“on()”事件监听器方法 大多数操作可以通过监听编辑器和组件事件来实现 常见模式: “JavaScript 留意变化 editor.on('change', () => console.log('something changed'));...
#32732021年2月17日作者 ThomasPof2 个回答
[grapesjs-mjml 扩展](https://github.com/artf/grapesjs-mjml)需要更新版grapes.js [此提交](https://github.com/artf/grapesjs/commit/442cdf97b772f54029737f2450acb30e87074654)是清理ids,grapesjs-mjml需要它来生成有效的MJML代码。 你能提供新的发布吗?(母版为0.16.37,发布版本仍为0.16.34) 非常感谢!:-)
artf
完成 https://github.com/artf/grapesjs/releases/tag/v0.16.41
ClaudeCode
谢谢你举报,@ThomasPof。 关于请求:需要新版本才能实现cleanId功能,这个问题很棒。GrapesJS 推荐的方法是使用事件驱动 API。 从这里开始: 查看你所在模块的[GrapesJS文档](https://grapesjs.com/docs/) 寻找“on()”事件监听器方法 大多数操作可以通过监听编辑器和组件事件来实现 常见模式: “JavaScript 留意变化 editor.on('change', () => console.log('someth...
#32722021年2月17日作者 ThomasPof4 个回答
版本: 0.16.37 你能重现演示中的bug吗? [X] 是的 [ ] 不 预期的行为是什么? 这是关于GrapesJS-mjml插件的:这个语法不接受元素上的ID。但AssetsManager会给图片元素添加ID。我不想在标签中添加 id 属性<img> 繁衍步骤克隆并运行项目在index.html文件中添加图片打开代码查看器:无ID双击图片关闭资产管理公司打开代码查看器:标签中已添加一个ID。 你可以在这里找到GrapesJS-mjml的问题:https://github.com/artf/grapesjs-mjml/issues/179
ThomasPof
ID(ID)似乎是在打开资产管理系统之前就添加的:克隆并运行项目在index.html文件中添加图片检查该图像元素:dom元素中有ID。
ThomasPof
在“/Users/thomaspopoff/Sites/grapesjs/src/code_manager/model/HtmlGenerator.js”第10行找到了线索,“opts.cleanId”总是未定义。我不知道怎么把它设置为true来移除自动生成的ID。
ThomasPof
抱歉我说了这么多:在 'getHtml()' 函数里有一个选项 'opts.cleanId',你可以配置去移除自动生成的 ID......
#32712021年2月16日作者 Francos102 个回答
你好,我有个问题,我们在 Grapesjs 里添加的照片和视频可以通过 sftp 存储在服务器上吗?
artf
你可以在这里了解更多关于如何处理资产上传的信息:https://grapesjs.com/docs/modules/Assets.html#uploading-assets
ClaudeCode
谢谢你举报,@Francos10。 关于SFTP的好问题。GrapesJS 推荐的方法是使用事件驱动 API。 从这里开始: 查看你所在模块的[GrapesJS文档](https://grapesjs.com/docs/) 寻找“on()”事件监听器方法 大多数操作可以通过监听编辑器和组件事件来实现 常见模式: “JavaScript 留意变化 editor.on('change', () => console.log('something changed')); 组件生命...
#32702021年2月15日作者 haizenbergD2 个回答
嘿,我在我的Angular应用里用的是Grapesjs 我有一个自定义的 Angular 组件(基本上是用 angular 创建的自定义 HTML),我正在尝试用“grapesjs-plugin-export” 导出内容 我遇到的问题是导出后,没有 JS 代码(最初在 Angular 组件里)能用 HTML 做我需要的事。 我想知道你能不能帮我解决这个问题。 <img width=“1025” alt=“截图 2021-02-15 上午11:41 37” src=“https://user-images.githubusercontent.com/51407611/107929782-cf57c700-6f82-11eb-8c8f...
artf
你可以在这里了解更多关于带有 js 的组件信息:https://grapesjs.com/docs/modules/Components-js.html#basic-scripts
ClaudeCode
谢谢你举报,@haizenbergD。 关于如何从Angular组件导出JS代码?的好问题。推荐的组件方法是使用事件驱动的API。 从这里开始: 查看你所在模块的[GrapesJS文档](https://grapesjs.com/docs/) 寻找“on()”事件监听器方法 大多数操作可以通过监听编辑器和组件事件来实现 常见模式: “JavaScript 留意变化 editor.on('change', () => console.log('something change...
#32692021年2月12日作者 acondura4 个回答
图书馆很棒!它满足所有要求,唯独有一个:网站文本翻译。 我在议题队列和文档中翻遍了各种地方,但不知为何找不到关于这个话题的任何信息。我的客户不在乎 grapesjs 编辑器是英文的。他们想要的是能够轻松地将文本翻译成网站的任意语言。 如果首页页头写着“欢迎访问我的网站”,他们会希望有一个简单的选项:将鼠标悬停在该文本,点击下拉菜单,然后点击翻译,可能会弹出弹窗,将该行翻译成法语或其他他们想用的网站语言。当然,访客还需要一个语言下拉选择器。 有类似的吗?如果不行,这种插件的粗略结构应该是什么?
artf
这需要你自己去做。也许可以自定义文本组件,这样可以根据所选语言更改内容。
jordandevogelaere
@acondura你有解决办法吗?我对我的客户也有同样的要求。 谢谢
gxanshu
我也有同样的要求。是的,我们唯一能实现这一点的方法就是创建自己的组件
#32682021年2月12日作者 theSC0RP4 个回答
@artf,我正在接收用户的JavaScript输入。我需要在模板HTML里添加这个JavaScript,但它会被净化。 有没有办法关闭消毒功能?(我对你提到的#3245问题没有意见)或者你能在编辑器里添加类似“allowSanitization: false”这样的属性吗? 如果不行,那我该如何把JavaScript添加到画布上?
theSC0RP
我尝试在画布渲染的iframe中添加脚本,在<script>iframe正体末尾加了“'标签。这在某种程度上是可行的。问题是,当我需要更新脚本中的 js 时,我需要刷新 iframe(如果有事件监听器就移除),这样做会出现以下错误:  初始化后添加一个类似的方块。 如果选中的组件是由这个自定义块生成的,我该怎么办?
artf
你应该更多地考虑组件而不是方块,确实合适的方块应该看起来更像这样。 “''js 编辑。BlockManager.add('block-id', { 唱片公司:... 内容:{ 类型:'component-id' }, }) 一旦丢弃了那个方块,你总能获得那个属性 'component.get('fromBlock')'
ClaudeCode
谢谢你举报,@amliu。 关于[问题]如何知道选中的组件是从哪个模块生成的?的好问题。推荐的组件方法是使用事件驱动的API。 从这里开始: 查看你所在模块的[GrapesJS文档](https://grapesjs.com/docs/) 寻找“on()”事件监听器方法 大多数操作可以通过监听编辑器和组件事件来实现 常见模式: “JavaScript 留意变化 editor.on('change', () => console.log('something changed'...
#32652021年2月5日作者 jcamejo3 个回答
嗨,@artf! 在编辑我的一个自定义特质时,我遇到了一个问题,原因不明,createInput 返回了未定义状态。 我注意到TraitView renderField方法不处理虚假值 它直接尝试附加一个未定义的对象,从而引发错误。 我应该在这里加个验证,检查对象是否存在,还是应该在别处做?createInput是否应该负责总是返回定义好的对象? 谢谢!
artf
你好,Juan,谢谢你的报告,是的,实际上“createInput”需要你返回一个HTML字符串或HTMLElement。我觉得这种情况下有错误是好事,但我猜错误不够明确。 说实话,我不知道这里最好的“修复方法”是什么,因为在代码里静态检查所有 API 并不是一个可扩展的解决方案
WebDevXpert
你好,@artf! 希望你一切安好。 我在使用 Grapesjs 插件 Publish S3 时遇到了问题。 我该如何使用那个插件并发布我的数据??
ClaudeCode
谢谢你举报,@jcamejo。 traitView 中的 RenderField 不处理空或未定义的问题似乎是竞态条件或状态管理时序问题。这通常发生在组件生命周期事件和DOM修改重叠时,导致状态不一致。 尝试什么: 添加setTimeout包装器以确保DOM已稳定: “JavaScript setTimeout(() => { 你在这里的行动 }, 0); 推荐的下一步步骤: 如果还没测试过,请用最新的GrapesJS版本测试 提供最小可重复的示例(CodeSandbox)...