#29492020年8月10日作者 v8jupiter1 个回答
你好, 有人能帮帮我吗? v0.16.17 我需要将视频组件的 HTML 改为结构: 我正在尝试覆盖 toHtml 的方法,但他们从未调用...... 获取DomComponents模块 设 comps = 编辑器。主导组件; 设 bm = 编辑器。BlockManager; 从默认的组件类型获取模型和视图 let originalVideo = comps.getType('video'); 让 oModel = originalVideo.model; “输入”将是组件类型ID comps.addType('video', { 定义模型 model: oModel.extend({ 默认值 :{ ...oModel.proto...
#29482020年8月10日作者 mmotov3 个回答
你好!我遇到了一个问题,在单元格中添加图片时,邻居单元格的内容会“跳”到底部。 实际上,这个问题不仅出现在图片上,视频、链接等方面也有。 这是没有图片时的效果:  现在附上图片:  但当我开启flex-grid时,它就正常工作了  你能帮我理解一下,我该如何实现这个目标吗?
Joshmamroud
@jayeshmotwani查看相关文档[这里](https://grapesjs.com/docs/api/block_manager.html#examples)
#29432020年8月7日作者 Joshmamroud3 个回答
版本: 0.16.18 你能重现演示中的bug吗? [>>> 演示<<<](https://jsfiddle.net/b4ox0nLp/16/) [X] 是的 [ ] 不 预期的行为是什么? 在模型上下文中期望 this.get('content'),在创建新组件类型(扩展默认组件类型)时,子节点应以 HTML 返回。 详细描述那个漏洞 不确定这是不是“但是”还是作有误,但在我遇到的其他问题中,似乎“this.get('content')”应该返回子节点的HTML,但它却返回了一个空字符串。 目前的行为是什么? 它只返回组件中的文本内容(如果有子组件),但如果有子组件,则不会返回。 你能附上截图、截屏或实时演示吗?** ![演示]...
artf
不,“content”属性只用于像Text/Textnode这样的组件。 把你的“this.get('content')”替换成“this.components().map(comp => comp.toHTML()'
Joshmamroud
@artf这看起来像个bug,还是作有误?
DmitryTar1
@artf这看起来像是个bug,还是作有误? 可能试试 model.components() insead of content
#29422020年8月7日作者 mofengwyh1 个回答
嗨! 我想实现这样一个功能:当鼠标移动到一个方块上时,浮动窗口会显示下一级的方块。如下所示:  我做了一个浮动窗口 div,但我不知道如何在浮动窗口里显示方块。我在文档里看到了 ['BlockManager.render()]](https://grapesjs.com/docs/api/block_manager.html#render),但它只能控制方块的显示位置,我觉得这不是合适的方式。我想问问有没有其他解决方案?...
artf
使用BlockManager API后,你必须为这种情况构建自己的UI。
#29412020年8月6日作者 nhh1 个回答
嘿, 我们目前正在使用 Grapejs 来创建 Liquid 模板(Shopify 语法)。目前的实现方式会让模板,例如 “{{ name }}'” 在编辑器中不渲染。 这是因为即使服务器在存储/加载周期后插值了“gjs-html”,编辑器仍然使用未插值的“gjs-components”来表示编辑者的内容。 为什么编辑器不使用渲染出来的 HTML 来显示?据我了解,组件结构只在内部用于组件分配。 有没有办法绕过这种行为?(我其实不太想在组件json上运行插值)
artf
如果你重新加载 HTML,所有组件信息都会丢失(这里有部分解释,[https://grapesjs.com/docs/modules/Storage.html#store-and-load-templates)])。 打个比方,试着把Photoshop文件和JPG作为输出来看待。如果你重新加载JPG,你就看不到Photoshop项目中使用的图层。 你得自己想办法让插值和组件兼容(比如对某个端点做异步调用并更新组件内容)
#29402020年8月6日作者 jcamejo1 个回答
你好,@artf久不见,希望你和你亲密的朋友一切顺利。 有个小案子,我想先问问你怎么看,然后再提出请求。 我有一个自定义链接组件包裹在一个 li 标签上,这个链接有一个事件,当它被移除时会移除它的父 li。 如果我直接删除链接,一切正常,但如果我移除包含 li 和 link 组件的外部父节点,Components.js 中的 removeChildren 会被执行为 undeed 组件,导致出现此错误 这是因为在 removeChildren 获得参数之前,另一个回调(我自定义的那个回调)中对象被删除了。 如果移除的参数是错误的,直接返回可以解决,但可能太黑客化了,我应该找别的解决方案,而不是让组件删除父项。 你怎么看? 谢谢!
artf
谢谢你,胡安,一切都好,希望你也一样:)如果移除的参数是错误的,直接返回其实可以解决,但也许这样太不靠谱了,我应该找别的解决办法,而不是让组件删除父节点。 严格来说,“removeChildren”不应该被称为“没有”“移除”,所以如果这个条件能解决你的问题,我觉得它很好。 我也觉得你的情况可能被别人用了
#29382020年8月4日作者 tranthanhhoa2 个回答
版本: v0.16.18 如何繁殖:选择组件选择图层标签页隐藏组件返回样式标签页检查“显示”属性  预期:“显示”应为“无” 实际上:“显示”仍然是“块”
Ju99ernaut
“样式管理器”似乎不会在样式从其他地方更改时更新......一旦你取消选择并重新选择组件,“显示”属性会更新。可能“StyleManager”需要更新,监听“LayerManager”对“显示”属性的更改。
#29372020年8月4日作者 MattDBP1 个回答
你好, 我正在尝试让 TinyMCE 作为模态编辑器工作,而不是内联编辑器。 我能用target.getEl().innerHTML获取选中的组件html,但这不包含任何样式。 当用 replaceWith(html) 把内容重新设置时,组件上的所有样式都会丢失。 有没有办法在不丢失样式的情况下更新或替换组件的 html? const cmd = { run(editor, sender, options = {}) { var target = options.target ||editor.getSelected(); const modal = 编辑器。模态; cont STATE = { VueInstance: null...
Ju99ernaut
你可以用它来获取组件及其样式; “''js const target = editor.getSelected(); 让 html = target.toHTML(); 设 CSS = 编辑器。CodeManager.getCode(target, 'css', { CSSC:编辑。CSS作曲家 }); HTML = '<style>${CSS}</style>' + HTML; ```