无法绑定到'选项'因为它不是“图表”的已知属性。

时间:2017-12-28 06:40:36

标签: highcharts ionic3 angular2-highcharts

我使用Angular2-highcharts创建了一个图表模块,但是当我尝试运行该应用程序时,我收到了后续错误。

ERROR Error: Uncaught (in promise): Error: Template parse errors:
Can't bind to 'options' since it isn't a known property of 'chart'. ("

<!-- <p text-center>Kye Info Page under construction</p> -->
  <chart [ERROR ->][options]="chartOptions" type="chart"></chart>
</ion-content>
"): ng:///KeyinfoPageModule/KeyinfoPage.html@27:9
'chart' is not a known element:

1. If 'chart' is an Angular component, then verify that it is part of this module.
2. To allow any element add 'NO_ERRORS_SCHEMA' to the '@NgModule.schemas' of this component. ("
<ion-content>

代码

1。 app.module.ts

import { ChartModule } from 'angular2-highcharts';
import * as highcharts from 'Highcharts';

imports: [
---------
ChartModule.forRoot(highcharts)
  ],

2。 html文件

<ion-content>
  <chart [options]="chartOptions" type="chart"></chart>
</ion-content>

3。 .ts文件

    export class KeyinfoPage {

      chartOptions:any;
      constructor(public navCtrl: NavController) {
      }

      ionViewDidLoad() {
    this.chartOptions={chart: {
      type: 'area'
  },
  title: {
      text: 'US and USSR nuclear stockpiles'
  },
  subtitle: {
      text: 'Source: <a href="http://thebulletin.metapress.com/content/c4120650912x74k7/fulltext.pdf">' +
          'thebulletin.metapress.com</a>'
  },
  xAxis: {
      allowDecimals: false,
      labels: {
          formatter: function () {
              return this.value; // clean, unformatted number for year
          }
      }
  },
  yAxis: {
      title: {
          text: 'Nuclear weapon states'
      },
      labels: {
          formatter: function () {
              return this.value / 1000 + 'k';
          }
      }
  },
  tooltip: {
      pointFormat: '{series.name} produced <b>{point.y:,.0f}</b><br/>warheads in {point.x}'
  },
  plotOptions: {
      area: {
          pointStart: 1940,
          marker: {
              enabled: false,
              symbol: 'circle',
              radius: 2,
              states: {
                  hover: {
                      enabled: true
                  }
              }
          }
      }
  },
  series: [{
      name: 'USA',
      data: [null, null, null, null, null, 6, 11, 32, 110, 235, 369, 640,
          1005, 1436, 2063, 3057, 4618, 6444, 9822, 15468, 20434, 24126,
          27387, 29459, 31056, 31982, 32040, 31233, 29224, 27342, 26662,
          26956, 27912, 28999, 28965, 27826, 25579, 25722, 24826, 24605,
          24304, 23464, 23708, 24099, 24357, 24237, 24401, 24344, 23586,
          22380, 21004, 17287, 14747, 13076, 12555, 12144, 11009, 10950,
          10871, 10824, 10577, 10527, 10475, 10421, 10358, 10295, 10104]
  }, {
      name: 'USSR/Russia',
      data: [null, null, null, null, null, null, null, null, null, null,
          5, 25, 50, 120, 150, 200, 426, 660, 869, 1060, 1605, 2471, 3322,
          4238, 5221, 6129, 7089, 8339, 9399, 10538, 11643, 13092, 14478,
          15915, 17385, 19055, 21205, 23044, 25393, 27935, 30062, 32049,
          33952, 35804, 37431, 39197, 45000, 43000, 41000, 39000, 37000,
          35000, 33000, 31000, 29000, 27000, 25000, 24000, 23000, 22000,
          21000, 20000, 19000, 18000, 18000, 17000, 16000]
  }]
    }
    console.log('ionViewDidLoad KeyinfoPage');
  }
   viewDashboard(){
      this.navCtrl.setRoot('DashboardPage')
  }

}

请帮我解决这个问题。我发现了几个像这样的问题,但没有一个能帮助我解决这个错误。我正在关注此视频以创建图表

https://www.youtube.com/watch?v=FSg8n5_uaWs&index=2&list=LLTJRcsGtG-ZMAf9dklVIikA&t=610s

keyinfo.module.ts

 import { NgModule } from '@angular/core';
import { IonicPageModule } from 'ionic-angular';
import { KeyinfoPage } from './keyinfo';
import { ChartModule } from 'angular2-highcharts';
import * as highcharts from 'highcharts';

@NgModule({
  declarations: [
    KeyinfoPage,
  ],
  imports: [
    IonicPageModule.forChild(KeyinfoPage),
    ChartModule
  ],
})
export class KeyinfoPageModule {}

1 个答案:

答案 0 :(得分:1)

您可以在使用它的IonicPageModule中设置导入HighChartsModule而不是app.module.ts

import { ChartModule } from 'angular2-highcharts';
import * as highcharts from 'highcharts';

    @NgModule({
      declarations: [
        KeyinfoPage,
      ],
      imports: [
        IonicPageModule.forChild(KeyinfoPage),
        ChartModule.forRoot(highcharts)
      ],
    })
    export class KeyinfoPageModule {}