问题 #893✓ 已解决提出于 2018年2月23日作者 alimajed933 个反应

为 HTML 添加属性

快速解答作者 nojacko2

我觉得你需要把属性添加到模型上,而不是视图。 https://github.com/artf/grapesjs/blob/50cc585f23f2560077fd0e9a42ced22e67e69723/src/dom_components/model/Component.js#L298 然后,你需要渲染视图。 我觉得是这样,但不能保证一定 😄

阅读下方完整回答 ↓

问题

大家好,

我想为画布中拖拽的每个方块添加一个ID;更清楚地说,我不想为每种类型添加ID,比如:Image、Table、Box 等。我想为每个块添加ad ID,这意味着在示例中,块“1 section”变成“<表 ... blockID = 1>”。

我正在尝试使用这两个命令:

  • 'editor.getSelected().view.$el[0].setAttribute(“blockId”,“1”)”

  • 'editor.getSelected().get('components').trigger('resetNavigator')'

是的,如果我做“检查元素”,更改会显示在画布上,但如果我尝试导出模板的HTML代码,属性却没有被添加。

有人知道怎么实现这一点,并且让这些更改也出现在导出的代码中吗?

提前感谢大家。

回答(3)

ezp1272019年7月4日

你好, 只是想举个例子,以防有人需要。

editor.on('block:drag:stop', function(model) {
	model.addAttributes({ 'data-block_id': '123xyz' });
});
artf2018年3月2日

就像James建议的那样,但没有“select.view.render()”,因为视图会同时接收变化

相关问答

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

与此问题匹配的付费插件

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

查看全部插件

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

免费方案

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

浏览免费插件 →
高级方案

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

浏览高级插件 →

浏览插件分类

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