javascript - 使用插件动态导入 chart.js
问题描述
如果需要,我们可以从 skypack 动态导入 chart.js。
const mod = await import("https://cdn.skypack.dev/chart.js");
mod.Chart.register(...mod.registerables);
但是我们无法注册动态加载的插件。
我们能够使用插件的唯一方法是从脚本标签加载它们。
我们创建了一个 codepen 来玩转动态加载或通过脚本标签加载的 chartjs 模块。
https://codepen.io/dbauszus-glx/pen/NWgQNjj
如果加载到全局窗口对象,这将起作用。
var myChart = new window.Chart(
document.getElementById("chart").getContext("2d"),
{
responsive: true,
type: dataview.chart.type || "bar",
plugins: [ChartDataLabels],
如果 datalabel 插件作为模块加载,这将不起作用。
如果插件从图表配置中注释掉,图表就可以工作。
const mod = await import("https://cdn.skypack.dev/chart.js");
mod.Chart.register(...mod.registerables);
const plugin = await import('https://cdn.skypack.dev/chartjs-plugin-datalabels')
var myChart = new mod.Chart(
document.getElementById("chart").getContext("2d"),
{
responsive: true,
type: dataview.chart.type || "bar",
plugins: [plugin.default],
解决方案
推荐阅读
- pandas - 将字符串列转换为小时
- python - Python指数积分:exp中遇到的溢出
- python - 使用 Python Selenium 提交 H-captcha 响应但没有提交按钮
- ios - Firebase 读取和保存数据问题 (Swift)
- sql - 由于“无法在 300 秒内执行广播”,Spark 作业失败。
- robotframework - 如何将所有案例报告合并为一份最终报告?
- python - Python 3.7 else 语句没有显示正确的索引?
- reactjs - 用 Jest Mock 函数测试 onClick
- laravel - Laravel 使用外键获取旧数据库中的数据并将其复制到新数据库
- python - 为什么 Django QuerySet 返回的值比数据库中的对象数(重复对象)多?