为什么ChartJs不在IE中工作

时间:2017-11-02 06:53:03

标签: javascript internet-explorer vue.js chart.js

此示例中的VueJs图表应用程序在IE中不起作用。有谁知道为什么?

例如,以下组件不会打印错误但不会同时运行

<div class="app">
    {{ message }}
  <line-chart></line-chart>
</div>


  Vue.component('line-chart', {
  extends: VueChartJs.Line,
  mounted () {
    this.renderChart({
      labels: ['January', 'February', 'March', 'April', 'May', 'June', 'July'],
      datasets: [
        {
          label: 'Data One',
          backgroundColor: '#f87979',
          data: [40, 39, 10, 40, 39, 80, 40]
        }
      ]
    }, {responsive: true, maintainAspectRatio: false})
  }

})

var vm = new Vue({
  el: '.app',
  data: {
    message: 'Hello World'
  }
})

1 个答案:

答案 0 :(得分:2)

这是因为,在这一行中,有一个ES6语法用于定义组件中的对象方法:

mounted () {

...并且Internet Explorer中不支持ES6语法。

相反,如果您希望支持IE,则必须在整个组件/应用程序中使用ES5语法:

Vue.component('line-chart', {
   extends: VueChartJs.Line,
   mounted: function() {  //<- use this instead
      this.renderChart({
         labels: ['January', 'February', 'March', 'April', 'May', 'June', 'July'],
         datasets: [{
            label: 'Data One',
            backgroundColor: '#f87979',
            data: [40, 39, 10, 40, 39, 80, 40]
         }]
      }, {
         responsive: true,
         maintainAspectRatio: false
      })
   }
});

查看working example