问题 #687💬 已回答提出于 2017年12月27日作者 TWCM1 个反应

在使用 editor.on('component:add',function(){} 更新组件属性后;蓝色盒子的商品不正确。

快速解答作者 artf1

@tommywulove好吧,那我关上这个 @ryandeba 正如你已经提到的,工具栏是在组件初始化时创建的,所以说实话,我不认为这是个bug,总体来说,你的snippet应该能正常工作。顺便说一句,感谢你愿意帮忙

阅读下方完整回答 ↓

问题

在使用 editor.on('component:add',function(){} 更新组件属性后; 蓝色方框的物品(指动作图标)不正确。复制图标不应该显示。 ![图片](https://user-images.githubusercontent.com/2859394/34370766-dad79d20-eb01-11e7-82f1-0d0b5346273c.png) JavaScript ' var hasClass = function(model, className){ return model.get('classes').where({name: className}).length; } var updateProperty = function (model) { model.set({ 可拖拽:错误, 可掉落:错误, 可复制:错误, 可移除:错误, 可选:false, 可编辑:错误 }); 如果 (hasClass(model,“可编辑”)) { model.set(“可编辑”,true); } if (hasClass(model,“selectable”)) { model.set('selectable', true); } 如果 (hasClass(model,“content-block”)) { model.set(“可拖拽”、“#wrapper...

回答(3)

artf2017年12月28日

@tommywulove好吧,那我关上这个

@ryandeba 正如你已经提到的,工具栏是在组件初始化时创建的,所以说实话,我不认为这是个bug,总体来说,你的snippet应该能正常工作。顺便说一句,感谢你愿意帮忙

ryandeba2017年12月28日

你好,@tommywulove, 我相信你说的“蓝框项目”是指[组件工具栏](https://github.com/artf/grapesjs/blob/1f4bcfa7f05c464e4bfac59461e0758aad0d18d8/src/dom_components/model/Component.js#L475)。所有工具栏按钮都是在组件初始化时为每个组件创建的;更改属性(如“可复制”)不会自动更新工具栏。 你大概可以通过清除组件上的“toolbar”属性,手动调用“initToolbar()”来强制工具栏更新......也许可以这样: @artf——你认为这是个bug,还是这是想要...

TWCM2017年12月28日

你好@ryandeba, 谢谢你的回复。我发现 component:add 事件不适合我的情况,所以我用 component type 来解决这个问题。我更新了组件类型,并添加了一些新的组件类型来控制元素中可以使用的动作。

相关问答

通过相似的问题讨论继续研究。

与此问题匹配的付费插件

根据问题关键词和标签相关性精选,助你更快交付。

查看全部插件

正在加载付费插件推荐……

免费方案

在以下平台查看开源 GrapesJS 插件: GitHub 或在我们的免费目录中快速搜索。

浏览免费插件 →
高级方案

高级插件提供支持、定期更新和生产就绪的功能——为你节省数天的集成工作。

浏览高级插件 →

相关教程

关于同一主题的深入指南。

全部教程 →

浏览插件分类

直接跳转到市场上的插件分类页面。