图表未在带有 webpacker 的 Rails 6 视图页面中定义

普惠制

我试图找出使用正确的方式Chart,从chart.js在Rails 6应用程序中使用webpacker。我希望我的图表生成 javascript 代码保留在页面中,因为我将从视图中动态生成它。

我开始了

yum add chartjs

然后添加到应用程序包(并且javascript_pack_tag在我的application.html.erb

// app/javascript/packs/application.js
import Chart from "chartjs";

然后,在一个视图中,我尝试使用该库:

  <div class="row">
    <div class="col">
      <canvas id="backlog-chart" width="100%" height="400px">
      <script>
        var ctx = document.getElementById('backlog-chart').getContext('2d');
        new Chart(ctx, { ...

这因Chart is not definedjavascript 错误而失败

我尝试过的事情:

  1. require("chartjs")包括图书馆形式application.js似乎没有任何影响。
  2. 我试图加入config/webpack/environment.jsProvidePlugin与对象Chart: "chartjs/chart.js",但没有改变。
  3. 我已经尝试import Chart from "chart.js"直接添加<script>视图中部分,但这失败了,浏览器上出现“仅允许在模块中导入”错误。

我的 javascript 技能绝对跟不上过去几年的新技术,因此任何有关正确方法的建议将不胜感激。

瑞恩·克里斯平·海尼斯

您不能Chart在 HTML 正文中的脚本中使用,因为Chart尚未全局定义。您可以通过嵌入脚本标签来导入chart.js javascript,然后Chart就可以使用了。但是你说你想使用Webpacker,所以......

将您的图表定义包含在您的 中application.js,而不是包含在脚本标签中。

// app/javascript/packs/application.js
import Chart from "chartjs";

var ctx = document.getElementById('backlog-chart').getContext('2d');
var myChart = new Chart(ctx, {...});

这将在您的 HTML 中定位该画布:

<canvas id="backlog-chart" ... />

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

在带有Bootstrap的Rails 6中使用webpacker时,为什么我的js.erb视图不起作用?

使用Webpacker的带有Framework7的Rails 6

Webpacker部署问题Rails 6

webpacker编译在Rails 6中忽略了application.js文件

在Rails 6中使用webpacker导入CSS

Rails 5/6:如何在webpacker中包含JS函数?

Bootstrap的Javascript在Rails 6 Webpacker设置中不起作用

在JS模块中使用Rails-UJS(带有webpacker的Rails 6)

如何导出全局scss变量文件以导入到Rails 6 webpacker中的所有scss文件

ReferenceError:在具有webpacker的新rails6应用程序中找不到变量:d3

未捕获的ReferenceError:$在Rails 6 jQuery Webpacker中未定义

Rails 6 复制与应用,webpacker 的影响

带有 Webpacker 的 Rails 5.1。使用自定义 js 类

在哪里可以找到需要从 Rails 6 webpacker 中的 Gems 中获取的 JS

如何在Rails 6中使用Webpacker加载d3.js?

您如何在Rails 6 / webpacker中要求本地Javascript文件?

在 Rails 6 中为 webpacker 使用 erb 集成的原因是什么?

Rails 6 Production-Webpacker在manifest.json中找不到样式

如何在Rails 6中使用Webpacker安装bs-stepper?

如何在Rails 6和Webpacker(以及引导程序和SASS / SCSS)中安装自定义字体

Rails 6 Webpacker:尝试安装jQuery和JS库

生产中的Rails 6 Webpacker:耙资产:预编译失败

如何在 webpacker Rails 6 中使 JS 函数全局化

Rails 6 Webpacker。JS插件不起作用

Rails 6 + Webpacker + Yarn:加载 javascript 库的问题

Rails 6应用程序使用Yarn(webpacker)安装Glide.js-未捕获的ReferenceError:未定义Glide

Webpacker抛出* Rails 6 *应用程序中manifest.json中找不到的application.css

如何在Rails 6中将i18n-js与webpacker一起使用?

stylesheet_pack_tag在带有webpacker gem的rails 5.1中找不到app / javascript / src / application.css