问题 #422✓ 已解决提出于 2017年10月15日作者 cmcintosh8 个反应

防止编辑某些组件

快速解答作者 artf4

是的,@MichaelKlemersson说得对,目前你必须在任何元素上手动设置它们。 另一个技巧是通过模型更新所有子节点 “''js const updateAll = model => { model.set({editable: false, ...}); model.get('components').each(model => updateAll(model)); } updateAll(组件); 你怎么看?

阅读下方完整回答 ↓

问题

我想阻止用户编辑特定组件的内部组件。

比如说,假设我有一个叫做 Drupal-Block 的元素

<div data-block>
...HTML 内 ..
</div>

我想防止用户编辑__...HTML inside...__ 位

回答(3)

👍 最有帮助artf2017年10月17日

是的,@MichaelKlemersson说得对,目前你必须在任何元素上手动设置它们。 另一个技巧是通过模型更新所有子节点 “''js const updateAll = model => { model.set({editable: false, ...}); model.get('components').each(model => updateAll(model)); } updateAll(组件); 你怎么看?

cmcintosh2017年10月17日

是的,我认为繁殖的想法很棒。 说清楚点,我找这个的原因是我正在为Drupal 8开发一个模块,允许通过GrapeJS工具创建主题。 在Drupal中,你有叫做块的元素,我的想法是把这些元素在主编辑器里封锁,改用弹窗编辑器来编辑它们,并允许在不同页面重复使用。

这是因为Drupal通过PHP渲染内容的方式,所以我需要在将模板存储到twig文件时将html转换为php变量。

artf2017年10月20日

你可以在演示中使用一个例子选择一个元素(例如某个部分)在控制台执行此事 “''js editor.getSelected().append(' <div data-gjs-removable=“false” data-gjs-draggable=“false” data-gjs-propagate='[“removable”, “draggable”]' style=“color:blue”> <div>Comp01</div> <div> <div>Comp11</div> <div data-gjs-stop=“1” data-gjs-removable=“true” data-gjs-...

相关问答

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

与此问题匹配的付费插件

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

查看全部插件

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

免费方案

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

浏览免费插件 →
高级方案

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

浏览高级插件 →

浏览插件分类

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