#21542019年7月20日作者 adelliinaa3 个回答
你好! 我想用 Angular CLI 7 将一个自定义组件集成到 GrapesJS,但它无法渲染。 我的组件是建立在另一个开源组件之上的。当我想在任何 Angular 项目中包含它时,我会直接导入 typescript 文件中的依赖/库,并在 HTML 中导入组件本身(例如 <h2> <custom-comp> </custom-comp> </h2>)。 为了在 GrapesJS 中使用它,我最初创建了一个块管理器,并附加了我的自定义组件: VAR Editor = Grapesjs.init({...}); var blockManager = 编辑器。BlockManager; blockManager.add('cust...
artf
好的,但你打算怎么处理编辑器的输出(Angular组件)?我是说,你最后会怎么用它? 无论如何,我看到两种不同的处理方式:为每个组件创建自定义渲染(就是我用MJML做的那个概念)。这是最准确的方法,因为我应该能在画布上看到框架的具体组件(例如,如果渲染器使用相同的“编译器”,比如你的情况是Angular框架)。这可能不是最简单的方法,因为你必须对两个框架都有很好的了解(比如你这里是Angular和GrapesJS),但从长远来看,渲染器实现后可以毫无麻烦地集成新组件你可以创...
artf
@adelliinaa我们先从一个简单的问题开始,因为我不太明白,你想做什么样的编辑器?一个用于Angular组件的构建器?!?
adelliinaa
我想创建一个类似于你用MJML组件创建的表单构建器,但用Angular CLI代替JS。是的,我想集成在GrapesJS中的自定义组件也是用Angular构建的。
#21522019年7月19日作者 csb3461 个回答
嗨!我正在把GrapesJS集成到Laravel应用里,到目前为止一切顺利。 在配置远程加载和存储后,我尝试在任何存储(自动或手动)后显示通知。 按照API文档我很容易理解: 'editor.on('storage:end:store', () => { showNotification() }); 这样操作得很好。然后我尝试以备远程错误时播放不同的通知: 'editor.on('storage:error:store', () => { showErrorNotification() }); 它能正常工作,但如果出现错误,它会同时显示两个通知。我觉得没有storage:success:store事件。有没有什么办法能用现有的活动...
artf
@csb346 是的,你说得对,确实没有“storage:success:store”这个词,即使出现错误,“storage:end:store”事件也会被正确调用,但作为最后一个调用,你可以使用标志变量 “''js 设错误; editor.on('storage:error:store', () => { showErrorNotification(); 误差 = 1; }); editor.on('storage:end:store', () => { !error &...
#21502019年7月18日作者 vish43951 个回答
你好,@artf, 我想补充Fullpage.js GrapesJS。 所以请帮帮我,我该怎么办? 我尝试用简单的HTML内容加载,然后在Canvas脚本中添加fulpage.js。但我做不到。
artf
首先阅读相关文档: https://grapesjs.com/docs/modules/Components.html https://grapesjs.com/docs/modules/Components-js.html 如果你还没能在文档后操作,可以通过展示无法运行的代码来开启问题
#21492019年7月18日作者 fmr4112 个回答
如何在定义新特质(https://grapesjs.com/docs/modules/Traits.html#define-new-trait-type)中创建复选框输入类型,我已经做了,但复选框没有出现,如果我和内置特质类型(复选框)比较,有标签i,谢谢  “在定义新类型中创建elemen”  'this.getPropertiesEl().style.display=“none”' 无法获得未定义或空引用的属性“样式” 有人解决了吗?
senchden
我可以确认,在网页演示 v0.15.8 中,无法为元素设置样式。IE11 在尝试通过样式管理器设置样式时,打印到控制台:
Alkotronikk
我的问题出在 [ParentNode.children](https://developer.mozilla.org/en-US/docs/Web/API/ParentNode/children),我没有用多边填充。
#21472019年7月17日作者 jmchaves1 个回答
1)在文本部分输入双划号(-- )。 2)点击导出MJML。 请参见演示网站的错误信息: 
#21462019年7月17日作者 untouch683 个回答
大家好, 我刚接触葡萄,但到目前为止我真的很喜欢它!现在我遇到了一个我似乎无法解决或找不到解决办法的问题,或者说我太笨了。 我自己玩了几个命名插件,然后导入到 grapejs-script 里。它运行正常,创建的方块也能显示出来。唯一的问题是,我的插件Opts值被直接忽略了。有人能告诉我为什么吗? plugin.js代码: index.php的Codesnap: 提前感谢大家的帮助!
artf
你能做一个可复现的演示吗? 从你的例子来看,我甚至可以说“你的插件里没有选项”,所以没有演示就帮不上忙。 下次如果有问题,请遵循BUG问题模板,而不是QUESTION模板
untouch68
你能做一个可复现的演示吗?从你的例子来看,我甚至可以说“你的插件里没有选项”,所以没有演示就帮不上忙。下次如果有问题,请遵循 BUG 问题模板,而不是 QUESTION 模板 你好,谢谢你的回答! 我说的是那些“类别”字段,它们不会在前端列出,只会出现在基础内容下。这基本上是我唯一需要的“选择”。但看来这样行不通。
artf
@untouch68,你的例子不完整,你能做一个可重复的演示吗?
#21442019年7月17日作者 mohammed-gaber-ramadan3 个回答
大家好, 我刚入门,抱歉问了个问题。 我正在尝试用 grapesjs 来编辑邮件模板。 编辑器里能有动态字段吗?例如[名字]、[姓氏]、[电子邮件地址]......等等。 所以在发送邮件之前,我会把那些动态字段替换成真实数据。 我需要以某种方式允许用户在编辑器中使用动态字段。 感谢你的帮助。 谢谢
mohammed-gaber-ramadan
是的,我会做以下操作: 我会用新闻通讯插件 https://github.com/artf/grapesjs-preset-newsletter 我会用CKeditor插件 https://github.com/artf/grapesjs-plugin-ckeditor 我会添加一个自定义下拉列表,包含ckeditor配置中的动态字段名称。
alikabeer32
你能举个简短的例子说明一个使用它的邮件吗?这样我能更好地理解你说的“动态”是什么意思 田野“?
mohammed-gaber-ramadan
例如,我们有5个动态字段(名字、姓氏、电子邮件、电话、公司名称) 我们的用户会去页面创建电子邮件模板,例如用来欢迎客户。 所以他会开始用构建器设计他的邮件模板,同时想在邮件模板里加入一些动态字段。 比如他会去掉文本组件,写“Dear”,然后想去动态字段(名字,姓氏)。 就这样,在将邮件模板发送给用户客户端之前,我的应用程序会用数据库中的真实值替换这些动态字段。
#21432019年7月16日作者 chauhankiran3 个回答
我有一个现有的模板,目前显示图片在页面中间。现在,我想让它链接或可点击,这样如果用户点击图片,它应该会被打开,标注为“href”。怎么做到的?目前,我们有一个链接块,可以在里面放置一张图片。但我要求的是反过来——现有图片可以链接。
miky9585
我是这样解决的: 关于后端脚本: var originalImage = 编辑器。DomComponents.getType('image'); 编辑。DomComponents.addType('image', { model: originalImage.model.extend({ defaults: Object.assign({}, originalImage.model.prototype.defaults, { 特质:[{ 类型:“文本”, 标签:“ID”,...
miky9585
SEO友好后端(新增替代账户) var originalImage = 编辑器。DomComponents.getType('image'); 编辑。DomComponents.addType('image', { model: originalImage.model.extend({ defaults: Object.assign({}, originalImage.model.prototype.defaults, { 特质:[{ 类型:“文本”, 标签:“ID”, 姓...
artf
@chauhankiran正确的步骤是创建一个自定义组件,类似“链接镜像”,用来替代原有的“像”组件。该组件的根节点是“<a>'元素,内部元素是图像。
#21422019年7月16日作者 khbhr3 个回答
警告 请阅读并遵循接下来的五个步骤,然后在发布问题前删除它们遵守贡献指南 https://github.com/artf/grapesjs/blob/master/CONTRIBUTING.md仅将GitHub Issues用于BUG、功能请求或问题。在问题标题前加上上下文,例如:“[虫子]:.......'先快速搜索一下,看看有没有人没开同样的问题不要要求为你创建示例或代码,先阅读文档和API,然后你可以发布你尝试过的(我们希望看到你的代码)以及你无法实现的所有相关陈述/问题都必须填写/回答,否则问题可能已结束你正在提交一个漏洞你用的是最新版本吗(旧版本不支持)?如果不确定,在控制台输入“grapesjs.version”并按回...
khbhr
你好,artf, 我想先感谢你所做的伟大工作。 其次,我想知道有没有办法在从一个单元拖拽组件到另一个单元时,带着它的父组件一起移动? 我之所以问这个问题,是因为我创建了一个按钮块,可以渲染包含链接组件的表格。我也定义了一些规则,比如更改链接背景时,父背景也会变,这对Outlook上的按钮看起来更好看是必要的)。 所以我遇到的问题是,当将组件从一个单元移动到另一个单元时,只有 A 元素被移动。 我考虑过挂钩拖拽事件,但我觉得它没有在组件上实现,而且我也不知道怎么用“compo...
artf
如果你需要移动整个父组件,那让用户移动那个组件就没意义,所以就把它设为“可拖拽:false”吧。 ' <tr><table> <tbody> <td> <a data-gjs-type=“link” data-gjs-draggable=“false” href=“https://google.com/”>Primary Button</a> </td> </tr> </tbody> </table>'
Deus-X
我需要重新探讨这个老话题。我现在也有同样的要求。我认为这是合理的。@artf 如果我把组件设置为“可拖拽:false”,我根本无法移动组件,这不是解决方案。用户因此不知道组件是否可以通过父节点拖拽,因此说组件可拖曳但子组件不可,将是一个很好的功能。如果尝试拖拽子节点,父节点会自动被选中并移动。