繁体   English   中英

chart.js coffeescript 找不到变量

[英]chart.js coffeescript can't find variable

我有这个饼图可以正确显示正确的数据:

  # setup the pieChart
  if ($( "#pieChart" ).length)
    poll_labels = []
    poll_data = []
    poll_colors = []
    $('.option_text').each (i, obj) ->
      poll_labels.push($( obj ).text())
      return
    $('.nb_votes').each (i, obj) ->
      poll_data.push($( obj ).text())
      poll_colors.push('#' + Math.floor(Math.random() * 16777215).toString(16))
      return
    data =
      labels: poll_labels
      datasets: [ {
        data: poll_data
        backgroundColor: poll_colors
        hoverBackgroundColor: poll_colors
      } ]

    ctx = document.getElementById('pieChart')
    pollPieChart = new Chart(ctx,
      type: 'pie'
      data: data
      animation: animateRotate:true)

    $('#pieChart').on 'data:update', (event, data_id, data) ->
      $('.answer_option').each (i, obj) ->
        if($( obj ).attr('id') == ("option_" + data_id))
          this.pollPieChart.data.datasets[0].data[i] = data
      this.pollPieChart.update()

但是, data:update事件找不到 pollPieChart 变量来更新它? 它不在window.pollPieChart ,我在pollPieChart下找不到它。 变量在 new 之后“消失”了吗?

pollPieChart是一个局部变量,而不是事件的this上下文的属性。

'data:update'事件侦听器中,js 自动将this设置为发生事件的元素( document.getElementById('') )。

只需删除this. 在回调中的pollPieChart之前应该修复它,因为它是在 当前的闭包中定义的,而不是全局window对象。

要将它放在全局窗口上(尽管这里不需要),请使用

window.pollPieChart = new Chart(ctx,
  type: 'pie'
  data: data
  animation: animateRotate:true)

试图在反应中渲染 Chart.js,变量不能用于<div>身份证</div><div id="text_translate"><p>我正在尝试在 React 上渲染 Chart.js 图形,但我无法使用该变量,这就是为什么即使我为 React 安装了 Chart.js 也无法渲染图表的原因。</p><p> 错误 - 为 myChart1 分配了一个未使用的值。</p><pre> const ctx1 = document.getElementById('myChart1').getContext("2d"); const myChart1 = new Chart(ctx1, { type: 'line', data: { labels: AGE, datasets: [{ label: 'VCD [E6 cell/ml]', data: BLEED_PID_CTRL_SP, backgroundColor:'rgba(255, 99, 132, 0.2)', borderColor:'rgba(255, 99, 132, 1)', borderWidth: 1 }] }, options: { scales: { x: { beginAtZero: true, title: { color: 'red', display: true, text: 'Age' } }, y: { beginAtZero: true }, downsample: { enabled: true, threshold: 100 // max number of points to display per dataset } } }, })</pre><p> 这是渲染部分,我没有将“myChart1”作为 ID 中的值。</p><pre> return ( &lt;div className="App"&gt; &lt;div class ="col-sm-8 offset-2 my-5"&gt; &lt;div class='card'&gt; &lt;div class="card-body"&gt; &lt;h5&gt;VCD&lt;/h5&gt; &lt;hr&gt;&lt;/hr&gt; &lt;canvas id={"myChart1"} &gt;&lt;/canvas&gt; &lt;hr&gt;&lt;/hr&gt; &lt;canvas id="myChart2" &gt;&lt;/canvas&gt; &lt;/div&gt; &lt;/div&gt; &lt;/div&gt; )</pre></div>

[英]Trying to render Chart.js in react, Variable can't be used in <div> id tag

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

相关问题 无法使用Chart.js制作图表 无法自定义Chart.js 无法在 chart.js 上显示 2 个 garphs Chart.js canvas:无法居中 不能从chart.js大小圆环图 试图在反应中渲染 Chart.js,变量不能用于<div>身份证</div><div id="text_translate"><p>我正在尝试在 React 上渲染 Chart.js 图形,但我无法使用该变量,这就是为什么即使我为 React 安装了 Chart.js 也无法渲染图表的原因。</p><p> 错误 - 为 myChart1 分配了一个未使用的值。</p><pre> const ctx1 = document.getElementById('myChart1').getContext("2d"); const myChart1 = new Chart(ctx1, { type: 'line', data: { labels: AGE, datasets: [{ label: 'VCD [E6 cell/ml]', data: BLEED_PID_CTRL_SP, backgroundColor:'rgba(255, 99, 132, 0.2)', borderColor:'rgba(255, 99, 132, 1)', borderWidth: 1 }] }, options: { scales: { x: { beginAtZero: true, title: { color: 'red', display: true, text: 'Age' } }, y: { beginAtZero: true }, downsample: { enabled: true, threshold: 100 // max number of points to display per dataset } } }, })</pre><p> 这是渲染部分,我没有将“myChart1”作为 ID 中的值。</p><pre> return ( &lt;div className="App"&gt; &lt;div class ="col-sm-8 offset-2 my-5"&gt; &lt;div class='card'&gt; &lt;div class="card-body"&gt; &lt;h5&gt;VCD&lt;/h5&gt; &lt;hr&gt;&lt;/hr&gt; &lt;canvas id={"myChart1"} &gt;&lt;/canvas&gt; &lt;hr&gt;&lt;/hr&gt; &lt;canvas id="myChart2" &gt;&lt;/canvas&gt; &lt;/div&gt; &lt;/div&gt; &lt;/div&gt; )</pre></div> Chart.js 变量数据我怎样才能做到这一点? 淡出页面加载器后无法显示chart.js 无法更改 Chart.js 中 xAxes 的时间 Chart.js 无法将数据集推送到动态制作的图表
 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM