#4442017年10月23日作者 ronaldaug3 个回答
你好, 首先,感谢你贡献了这样一个出色的 js 框架。 我对葡萄非常陌生。GitHub 也是。 https://github.com/artf/grapesjs/wiki/Components-&-JS#template-related 根据 grapesjs wiki,我在画布里加载 js 链接,就像上面的代码一样,运行正常。 但当我尝试用这种CSS链接时,它不起作用。 这里有人建议直接在id=“gjs”下面添加那些CSS链接。 我做了,但如果我清理画布,CSS链接也会被清理,CSS就不再工作了。 我的问题是,我该如何将CSS链接加载到头标签中?
artf
你差点就到了:) “''js 画布:{ 斯泰尔斯:“https://......” } ```
ronaldaug
非常感谢@artf,效果非常好。
coder-strange
渲染时必须单独添加,getHtml() 里不会有。
#4432017年10月21日作者 roytang2 个回答
我们想定义一个自定义组件,可能会被添加到也可能不会,但我们希望不允许添加多个该组件。这个限制可以在GrapesJS里实现吗?
artf
虽然不是内置的,但用 GrapesJS 的 API 绝对可以实现 非常简单的方法是添加一个监听器(例如,'change:changesCount'),搜索组件,然后应用你的逻辑 “''js editor.on('change:changesCount', () => { editor.getComponents().each(model => ...) }) ```
lock[bot]
由于关闭后没有近期活动,该帖子已被自动锁定。请为相关漏洞开启新一期。
#4422017年10月21日作者 roytang3 个回答
我们想创建一些自定义组件,这些组件的样式会根据外部主题CSS发生变化(可以有不同的主题),并且希望这些样式在编辑时能出现在画布中。
roytang
请忽略。我最终用JavaScript把样式表链接注入Grapes的画布iframe里 将外部样式表插入 Grapesjs 窗口 var iframes = Utilities_GetElementsByClass(“gjs-frame”, “IFRAME”, document.body); 对于(var i=0; i<iframes.length; i++) { var iframe = iframes[i]; var doc = iframe.contentDocumen...
artf
你可以通过Canvas配置选项注入脚本/样式 “''js const editor = Grapesjs.init({ ... 画布:{ 风格:['https://...', '...'], 脚本:['https://...'], } }); ```
#4412017年10月20日作者 santiph3 个回答
由于 https://github.com/artf/grapesjs/issues/436,我无法依赖 StorageManager 的远程加载方法从 REST 端点加载模板,所以我只能用 'editor.setComponents()' 和 'editor.setStyle()' 这两个替代工具(这些工具在命令中使用,所以可以使用 'grapesjs' 和 'editor')。 不幸的是,这些方法会让“changesCount”增加,并在用户试图离开网页时触发“onbeforeunload”事件。 此外,命令中包含诸如“editor.editor.set('changesCount', 0);”这样的句子是无用的,因为命令一结...
artf
@santiph好,如果问题是“onbeforeunload”,可以用“noticeOnUnload”禁用它。 “''js Grapesjs.init({ ... noticeOnUnload: false }) ```
santiph
你好@artf 我需要持续提醒用户任何未保存的更改。当没有新内容需要保存时,跳过它:当创建新的空模板时,无论是保存完还是加载模板后,都不应显示任何确认信息。 通过StorageManager保存场景是正常的。加载时不行,遗憾的是。至少当组件、样式、HTML 等内容是通过编辑器的 API 加载,而不是通过 StorageManager .load() 加载时,是这样。
santiph
我可以用远程存储完整测试: “onbeforeunload”在保存后关闭时如预期般被禁用。 不幸的是,加载新模板后关闭时,它仍然显示。 经过一番调试,加载新模板似乎会将“changesCount”提高到1。 (加载“changesCount” = 1。加载 'changesCount' = 2.加载“changesCount” = 3.) 如果模板更改的原因是加载新模板,这个计数器怎么可能重置?
#4402017年10月20日作者 ateshuseyin3 个回答
我在项目中使用jquery。0.12.8版本之后,它无法与jquery兼容。 我的webpack.config的prt是; 当我尝试放下方块时,它会扔出去;ComponentsView.js:76 未捕获类型错误:无法读取未定义的属性“长度” at child.addToCollection (ComponentsView.js:76) at child.addTo (ComponentsView.js:22) 在 triggerEvents (backbone.js:371) at triggerApi (backbone.js:356) 在eventsApi(backbone.js:155) 在孩子时。Events.trigg...
artf
你所有的方块都会出现同样的错误吗?即使是官方的?
ateshuseyin
右。我在 mjml 插件中定义的所有方块都遇到同样的错误。
artf
好的,我想弄清楚这是不是和jquery有关。你能在没有 mjml 插件的情况下复现它吗?(最新版本)
#4392017年10月20日作者 ateshuseyin3 个回答
在我的机器里葡萄不稳定。通常,第一次请求时会有以下错误。刷新一两次后,它就能正常工作了。我用过的所有版本都有这个bug。未捕获的类型错误:无法读取未定义的属性“componentTypes” 在F.i.renderChildren(grapes.min.js:2) 在F.i.render(grapes.min.js:2) 在F.i.addToCollection(grapes.min.js:2) grapes.min.js:2 在Function.C.each.C.forEach (grapes.min.js:2) 每场(grapes.min.js:2) 在F.i.render(grapes.min.js:2) 在F.i.rend...
ateshuseyin
我找到了问题所在。我的一个Chrome扩展(我记得是Backbone Inspector)导致了这个问题。问题可以结案
ateshuseyin
另一个错误是;components.js:169 未捕获类型错误:无法读取未定义属性的“defaultTypes” 在child.renderChildren(components.js:169) 在child.render(components.js:212) 在child.addToCollection(ComponentsView.js:65) ComponentsView.js:107 在 Function..each..forEach (underscore.js...
artf
奇怪,我以前没遇到过这些问题,但如果你在['components.js'](https://github.com/artf/grapesjs/blob/dev/src/dom_components/model/Components.js)里看到'defaultTypes',那你肯定是在用旧版本的grapesjs
#4382017年10月19日作者 Geczy3 个回答
我所做的只是导入了HTML,但无法修改HTML中的文本 我无法输入任何内容或删除任何文字 “''js const editor = window.grapesjs.init({ storageManager: { 自动加载:0, }, 插件: ['gjs-plugin-filestack'], pluginsOpts: { 'gjs-plugin-filestack': { 说明:process.env.REACTAPPFILESTACKKEY, filestackOpts: { 接受:'image/*', maxFiles:10, storeTo: { 位置:'S3', 路径: '/${btoa(this.props.appli...
Geczy
这就是我使用的 HTML https://pastebin.com/wNseLeqh 是因为文本没有被“'包裹<p>”吗?
artf
这是因为“td”组件[不可编辑](https://github.com/artf/grapesjs/blob/dev/src/dom_components/model/ComponentTableCell.js),所以最简单的解决办法是,正如你已经掌握的,把它包裹在其他组件里。否则,你应该扩展TableCell
lock[bot]
由于关闭后没有近期活动,该帖子已被自动锁定。请为相关漏洞开启新一期。
#4362017年10月19日作者 santiph3 个回答
我正在使用自定义模块来保存/加载一个模板,服务如下: 存档是另一个模块,但运行正常。问题出在 Load() 调用上。不知为何,Grapes 对“localhost:8000/templates/5”执行 POST 操作,结果触发了 405 - 后端不允许的方法。 如果请求中没有指定方法选项,RemoteStorage 模型中的取取调用默认为 POST。 https://github.com/artf/grapesjs/blob/dev/src/storagemanager/model/RemoteStorage.js#L123 而 Load 在调用 'this.request()': https://github.com/artf...
suresh5
你好,你能在发送加载模板时给我分享一下JSON吗?
lock[bot]
由于关闭后没有近期活动,该帖子已被自动锁定。请为相关漏洞开启新一期。
#4342017年10月19日作者 vandanaqburst2 个回答
调用 setComponents 时,供应商前缀被截断。
artf
这是因为浏览器的解析器,我已经在[路线图](https://github.com/artf/grapesjs/issues/74)中添加了自定义解析器的功能。
lock[bot]
由于关闭后没有近期活动,该帖子已被自动锁定。请为相关漏洞开启新一期。
#4332017年10月18日作者 cindygao933 个回答
我下载了git仓库,但只找到grapes.min.js。我真的很想深入研究代码,更好地理解所有文件之间的关系,但我找不到未压缩版本。有人能告诉我它在仓库里的位置吗?如果没有,是否可以让未压缩版本在某处提供?
ateshuseyin
葡萄没有未压缩版本。我认为这是必要的。在@artf添加未压缩版本之前,先检查项目,然后把 grapesjs 关联到你的项目里。参见:https://docs.npmjs.com/cli/link
artf
你好@cindygao93如果你想深入了解代码,只需查看['/src'](https://github.com/artf/grapesjs/tree/dev/src)文件夹即可
z-vr
@artf“/src”是个不错的起点,但 “''js const Editor = require('editor'); const PluginManager = require('plugin_manager');