#13992018年9月3日作者 aj00223 个回答
你好,Artf, 感谢你的出色工作,我真的很佩服你的工作。我对特质管理有点疑虑,我想在编辑器里打开modal而不是齿轮图标。当用户选择输入时,很难更改输入名称,因为没有收到,用户不识别齿轮图标而不是齿轮图标。我想在用户选择输入时显示型号。请帮帮我,如何实现这个目标。
artf
我觉得就你这种情况来说,你需要扩展[输入组件](https://grapesjs.com/docs/modules/Components.html#update-component-type),并打开模态(比如双击时),帮助用户设置特性
aj0022
谢谢你的回复, 但我不知道怎么做,你能帮帮Artf吗?
lock[bot]
由于关闭后没有近期活动,该帖子已被自动锁定。请为相关漏洞开启新一期。
#13982018年9月2日作者 huzineczerik3 个回答
你好,@artf, 我是否想把所有函数翻译成匈牙利语,以便自己能做到? 请给我一些修改这些文本的例子:指南,你会发现所有文本都是由配置对象定义的。如果你的目标是扩展已有的预设,那你必须通过模块的 [API](https://grapesjs.com/docs/api) 访问模块的每个元素。 举个例子,假设你想更改某个方块的标签,你可以这样做: “''js 编辑。BlockManager.get('ID-OF-THE-BLOCK')....
huzineczerik
谢谢你@artf, 我试过了,但没成功  我到底哪里做错了? 更新 只有在我写完这些内容后才会生效。如果我从控制台拨打,它就无法使用
huzineczerik
 所以我试了试 不起作用
#13962018年9月1日作者 jmrgz2 个回答
bug:当你的预定义块或保存的模板有两个或以上的背景图层时,如果你添加一个新图层,就会生成很多新的空图层。 如何复现:前往 https://grapesjs.com/demo.html选择粉色的头块进入装饰 - >背景,添加新图层取消选择粉色头部,再次选择进入装饰 - >背景,你会看到新的空图层如果重复上一个循环,你会得到数百层空的。 30秒视频,展示问题:https://screencast-o-matic.com/watch/cFQVb0q4Ex 这个问题发生在Chrome、Safari和Firefox上,都是最后版本。 @artf你能告诉我Grapesjs中新背景图层的添加是控制在哪里的吗?我想自己尝试修复它。谢谢!
artf
感谢@xamdam777报告。实际上,正如你已经说的,导入样式时就会出现这种情况(浏览器的CSS解析器相当混乱),不幸的是,在少数情况下会发生冲突。(例如:Chrome 生成的风格连自己都不懂)  当...
jmrgz
非常感谢@artf,现在我完全明白问题所在,该死的浏览器解析器!:) 我一直在用 addLayer() 和 refreshLayers() 做了一些测试。 这是我目前的做法,修改refreshLayers()函数,我会尝试检测错误的图层而不显示。 我把下面的代码放在 https://github.com/artf/grapesjs/blob/dev/src/style_manager/view/PropertyStackView.js#L69 的第131行 (在 refre...
#13952018年8月31日作者 kuldeepcis2 个回答
我已经把模板保存在数据库里,包含所有组件,比如图片等。但之后我已经在系统里上传了新图片,这些图片会在模板里显示,但当我尝试更新旧模板图片时,它只显示之前的图片,而不是新的。 请告诉我如何更新图像组件。 提前感谢大家
artf
没有可复现的演示,更像是你这边(数据库/服务器)的问题。我会重新打开这个,看看你能不能指出问题
lock[bot]
由于关闭后没有近期活动,该帖子已被自动锁定。请为相关漏洞开启新一期。
#13942018年8月30日作者 nojacko2 个回答
https://grapesjs.com/demo.html在双击文本中“所有文本块可能......”触发编辑模式。将此文字粘贴到:文本在重新加载葡萄之前无法编辑
artf
谢谢@nojacko找到了问题,下次版本会修复
lock[bot]
由于关闭后没有近期活动,该帖子已被自动锁定。请为相关漏洞开启新一期。
#13932018年8月29日作者 pnellesen3 个回答
我正在构建一个新的特质类型,想在里面包含Grapesjs的颜色选择器——有什么建议吗?目前我在“inputEl”的html里包含标准HTML颜色输入(还有文本字段和单选按钮),但如果可能的话,我很想用grapesjs自带的颜色输入。 举个我想放葡萄采摘器的位置示例。 inputEl = '<div>这里有 HTML</div> 颜色<div><span>: </span><span><输入类型=“颜色” id=“colorpicker” value=“”</span></div><div>这里>更多 HTML</div> 感谢任何建议。顺便说一句,这是个很棒的工具,谢谢你创建它。
pnellesen
@nojacko我稍微修改了代码,基本上我现在的做法是: “''js getInputEl: function() { 如果(!this.inputEl) { var input = document.createElement('div'); input.innerHTML = this.inputHtml var inputEl = input; var pickerEl = inputEl.querySelector(“.myolorPicker”); pickerE...
artf
你好@pnellesen这其实是个很好的问题,确实应该允许这样做,但遗憾的是,目前情况并不那么简单。我们应该重构一些模块,让界面更易复用。 顺便说一句,试着扩展编辑器。TraitManager.getType('color').prototype.getInputEl' 在 'getInputEl' 方法里,看看它是否能帮到你
pnellesen
@artf——谢谢你的回复!你的建议效果不错(甚至在 Internet Explorer 里也能用,比我用的 html5 颜色选择器还好:p)。我对样式和输入数据还有些调整,但总体来说还不错。 再次感谢! 给好奇它是怎么运作的(我相信可能还有更好的方法): 只需要添加大约5行代码(下面加粗),并在我想连接拣选器的元素上添加一个“data-colorp-c”属性: getInputEl: function() { 如果(!this.inputEl) { var input =...
#13912018年8月29日作者 FrciSmrci3 个回答
嘿,@artf,感谢你的[增强](https://github.com/artf/grapesjs/issues/1346)!实现在某些属性(字体大小、边界半径等)上正常工作,但在其他属性(行高、边框宽度等)则不然。我创建了一个[示例/演示](https://stackblitz.com/edit/angular-737uyd),显示两种场景中的配置是相同的,但该单元在上述属性中不适用。 希望你能去了解一下。 谢谢。
artf
我做了一个示例/演示,显示两种场景下的配置是相同的 实际上,你没有说明“默认值”,比如“行高”默认为“normal”,因此在初始化时会重置它的“单元”
FrciSmrci
@artf我觉得这个具体修复搞砸了没有单位的属性,比如不透明度。滑块在这种情况下表现得很奇怪,即使在[演示](https://grapesjs.com/demo.html)上也是如此。
lock[bot]
由于关闭后没有近期活动,该帖子已被自动锁定。请为相关漏洞开启新一期。
#13902018年8月28日作者 lorrandavid1 个回答
如果用户没有选择图片,我想尽可能长时间地保留资产管理器,我怎样才能防止在按下关闭按钮时触发事件冒泡? 另外,有没有办法在选择资源时更改点击事件?
lock[bot]
由于关闭后没有近期活动,该帖子已被自动锁定。请为相关漏洞开启新一期。
#13892018年8月28日作者 mariselvanm2 个回答
这是我试图在编辑器中添加的组件。 <div class=“page”> <div class=“col1”></div> <div class=“col2”></div> </div> 添加这些组件后,我尝试给这些元素添加一些计算值,比如这样, element.on('component:add',function(ele){ ele.addAttributes({ 'data-top' : topOffset, 'data-left' : leftOffset, }); editor.render();// 用于渲染更新后的html }); 但这个代码只更新了“.page”组件。 我如何将这些attr添加到“.page”组件中的...
artf
这里查看所有可用的组件方法:https://grapesjs.com/docs/api/component.html 顺便说一句,你应该做类似的 “''js element.on('component:add', component => { component.find('.col1, .col2').forEach(comp => { comp.addAttributes({ ... }); }); 你不需要重新渲染 editor.render(); }); ```
lock[bot]
由于关闭后没有近期活动,该帖子已被自动锁定。请为相关漏洞开启新一期。
#13882018年8月27日作者 froderf3 个回答
我正在尝试更新所选元素的CSS。 示例: 精选元素: '<div id=“inul” class='class1'>Hello</div>' 上述代码来自 component.toHTML(); CSS: .class1{ 背景色:黑色; } 上述CSS代码是从编辑器返回的。CodeManager.getCode(component, 'css', {cssc: editor.CssComposer}); 我用了textarea(比如)编辑CSS代码,点击保存按钮后运行下面的代码 'editor.getSelected().em.set('style', content);' 结果并非应有的效果,它会带来 #inul { 0: ....
artf
好的,如果你选择这样的元素: '<div id=“inul” class='class1'>Hello</div>' 你有以下选择:使用 'editor.getSelected().setStyle({ color: 'red' })' 只更改所选组件样式,因此你会得到: “''CSS #inul { 颜色:红色; }
artf
@froderf 当你做 '.setStyle(content);' 时,'content' 应该是像 '{ color: 'red' }'' 这样的对象,而不是带有选择器的字符串
froderf
我这里需要的是类似的东西 “编辑。CodeManager.setCode(component, 'css', {cssc: editor.CssComposer});' 该系统会更新所选组件的样式