StyleManager - SectorsView - addToCollection() 使用“name”属性构建 ID,但因多个空格或特殊字符而失败
这是我之前提到的截图: 
阅读下方完整回答 ↓问题
你好@artf, 利用grapesjs.init()方法中的pluginOpts属性,我通过Newsletter插件自定义了样式管理器中显示的扇区,如下: “''js Grapesjs.init({ [...] 插件:['gjs-plugin-ckeditor', 'gjs-blocks-basic', 'gjs-preset-newsletter', 'gjs-preset-webpage', pluginsOpts: { [...] 'gjs-preset-newsletter': { styleManagerSectors: [ { id:“尺寸”, 名称:“我的自定义标签带空格” build道具:[ [...] ], [...] } ] } } ); 你可能知道,JavaScript 的标准“替换”方法默认表现得有点奇怪,如果你没有明确设置带有 g 标志的 RegExp,它只替换源字符串中的第一个出现点(不像地球上其他所有编程语言,它们会自动处理这个)。所以才有这个bug。 此外,“name”属性在某些语言中也可能包含特殊(带重音)字符,而且这些属性也可能破坏ID,因为你无法逃脱它们。 如果这里使用“name”属性是有意为之,而不是复制粘贴错误(如果你指的是“model.get('id')”而不是“model.get('name')”),那么这样做的目的是什么? 与其使用...
回答(3)
这是我之前提到的截图:

如果这里使用“name”属性是有意为之,而不是复制粘贴错误(如果你指的是model.get('id')而不是model.get('name')),那么这样做的目的是什么? 与其使用一个“本我”属性,不如我们自己定义?(并且自然避免使用带有此类性质的空格或特殊字符)。 嗯,这绝对不是明智的选择,可能我当时还没在那个模型上用“id”。我会在下一个版本里改。子公司问题:在等待官方修复(或不修复)期间保留这个变更会有危险吗? 我认为,为了让它更适合自定义,可能需要去掉那个id属性,改成一个新类,所以最终结果应该是'class=“gjs-sm-sector gjs-sm-sector__MYID””
由于关闭后没有近期活动,该帖子已被自动锁定。请为相关漏洞开启新一期。
相关问答
通过相似的问题讨论继续研究。
问题 #1740
:id 元素未保存的 CSS 属性设置在 v0.14.50
当我尝试给“1列”行元素添加背景色时,它在编辑器中是内联的,没有用ID绑定,ID是唯一的,当我保存“HTML”并样式“json”并渲染回去时,它也不会保存,最后的“HTML”,如果我打开导出选项, 它在“CSS”中与ID绑定,但不知为何,样式的“json”里没有,因为我把“HT...
问题 #1431
从远程加载HTML文件
我把我的HTML内容托管在云端。然后在编辑器中尝试加载html内容时,我发现错误:“对预检请求的响应未通过访问控制检查:请求资源上没有'访问-控制-允许-起源'头部。因此,原点“http://localhost:3000”不被允许访问。如果不透明度响应符合你的需求,将请求模式设...
问题 #1519
:在 grapesjs.init 中加入组件
能否在 grapesjs.init 上初始化组件。 我们没有使用 StorageManager.load。 我们已经在init时拿到了项目数据。 用 HTML 没问题,但用组件会把组件对象渲染成编辑器中的文本。 'this.editor = grapesjs.init({ co...
问题 #620
远程存储
我尝试使用远程存储,但没成功,问题解决后我能尽力调整所有内容,但编辑器无法渲染加载的 HTML。 GrapesJS: JSON: '{“gjs-css”:“”, “gjs-html”:“<div>HELLO</div>”, “gjs-assets”:“[]”, “gjs-sty...
与此问题匹配的付费插件
根据问题关键词和标签相关性精选,助你更快交付。
正在加载付费插件推荐……
相关教程
关于同一主题的深入指南。
浏览插件分类
直接跳转到市场上的插件分类页面。