问题 #1414💬 已回答提出于 2018年9月10日作者 gabrigcl0 个反应

组件“首次渲染”事件

快速解答作者 artf

你可以用“onRender” “''js view: defaultView.extend({ // ... onRender() { const chartModelSaved = this.el.getAttribute('chartmodel'); 如果(chartModelSaved) { this.model.set('chartModel', JSON.parse(chartModelSaved)); this.model.set('chartType', this.model.get('chartModel').type) } 否则 { this.model.set('chartModel', JSON.parse(...

阅读下方完整回答 ↓

问题

嗨。我正在开发一个用chart.js图的插件。我需要在生成的组件中持久化图表模型,以便在背画布加载时渲染图表。为了实现这一点,我决定在组件的HTML署名中持久化图表模型。这是我配置图表后生成的组件 HTML(图表模型存储在属性“chartmodel”中): ![捕捉 2018-09-10 as 09 28 51](https://user-images.githubusercontent.com/7770605/45297543-1ac93980-b4dc-11e8-9bcf-cd33a74542de.png) 我的策略是,当组件首次渲染时,如果在组件的“chartmodel”属性内存在图表模型,那么图表会解析该属性的JSON字符串。如果没有“chartmodel”属性(当用户创建组件时),图表会使用组件核心的默认模型来渲染: “JavaScript view: defaultView.extend({ init() { const chartModelSaved = this.el.getAttribute('chartmodel'); if(chartModelSaved){ this.model.set('chartModel', JSON.parse(chartModelSaved)); this.model.set('chartType', this.model.get...

回答(3)

artf2018年9月11日

你可以用“onRender” “''js view: defaultView.extend({ // ... onRender() { const chartModelSaved = this.el.getAttribute('chartmodel'); 如果(chartModelSaved) { this.model.set('chartModel', JSON.parse(chartModelSaved)); this.model.set('chartType', this.model.get('chartModel').type) } 否则 { this.model.set('char...

gabrigcl2018年9月14日

谢谢,这个方法有效!不过,我必须把图表模型存储在组件的 html 里,这样生成的模板才能在 grapesjs 编辑器之外渲染图表。我无法像我想要的那样,在组件的自定义 HTML 属性中持久化任何内容: '''html <canvas chartmodel=“{chartType: doughnut}”>

我有什么解决方案来满足这种需求?
artf2018年9月15日

@gabrigcl我不明白现在哪一个才是问题......

我无法像我想要的方式在组件的自定义 HTML 属性中持久化任何东西

但这正是你之前帖子里展示的,试着详细说明你需要什么,哪些做不到,现场演示会更好。

相关问答

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

问题 #482

自定义组件中的默认资产管理器

我正在为下面的模板创建自定义组件,我们希望用户输入文本、链接、悬停文本并选择图片,想用默认资产管理器选择图片,但不确定如何在自定义组件中获得选中的图片?以下是我使用的代码 view: defaultType.view.extend({ init() { this.listenT...

3 个回答更新于 2019年9月18日

问题 #1067

当允许脚本时,葡萄将变为空

你好@artf 我初始化了 Grapesjs,但没有允许脚本。我从附件(template.zip)导入了html字符串,Grapesjs可以正确显示 但当我在init代码中用'allowScripts: 1'允许脚本,并导入上述HTML字符串时,Grapesjs没有显示任何,我...

3 个回答更新于 2019年9月17日

问题 #529

Editor.setComponents(html) 在编辑器中重置为默认的特征值

#522 感谢大家的帮助,我通过 this.model.attributes 解决了问题。但现在我又遇到了另一个问题,editor.setComponents 在 html 编辑器中重置了 value,且 html 还原为默认特征值。 应用流程 1)用户被重定向到 grapes...

2 个回答更新于 2019年9月18日

问题 #602

自定义HTML/JavaScript

技术上来说这不是问题,但我正在寻找一种方法来复制Click Funnels中的“代码编辑器”功能,那里有一个模块可以打开编辑器。 不想太有创意,因为我觉得葡萄里应该有办法做到这一点(大概有)。 如果不行,我可以开始写,但觉得还是先检查一下最佳实现。 提前感谢大家 ![图片](h...

2 个回答更新于 2019年9月18日

与此问题匹配的付费插件

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

查看全部插件

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

免费方案

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

浏览免费插件 →
高级方案

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

浏览高级插件 →

相关教程

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

全部教程 →

浏览插件分类

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