GoogleChart没有定义?

时间:2017-02-17 12:54:39

标签: angular typescript charts angular-chart

我在Angular 2项目中使用angular2-google-chart。但得到了这个错误:

core.umd.js:3491 EXCEPTION:未捕获(承诺):错误:(SystemJS)GoogleChart未定义     ,ReferenceError:未定义GoogleChart

我做过:npm install angular2-google-chartnpm i angular2-google-chart 还在<script type="text/javascript" src="https://www.gstatic.com/charts/loader.js"></script>中添加了cdn index.html

我想在我的项目中使用字符,请向我推荐一些其他第三方图表实现。 的 profile.component.ts:

import { Component, OnInit,HostBinding } from '@angular/core';
import { Router,ActivatedRoute } from '@angular/router';
import { slideInDownAnimation } from '../../animations/animations'

@Component({
   selector: 'profile-component2',
   directives: [GoogleChart],
  templateUrl:`../app/components/profile/profile.component.html`,

  animations:[slideInDownAnimation]
})

export class ProfileComponent2 implements OnInit {
name="Shubham";
message: string;
@HostBinding('@routeAnimation') routeAnimation = true;
@HostBinding('style.display')   display = 'block';
@HostBinding('style.position')  position = 'absolute';
public login:{} = {};
private interval:any;
ngOnInit() {
      console.log("profile component2 initialized");
  }


      public line_ChartData = [
             ['Year', 'Sales', 'Expenses'],
             ['2004',  1000,      400],
             ['2005',  1170,      460],
             ['2006',  660,       1120],
             ['2007',  1030,      540]];
      public bubble_ChartData = [
           ['ID', 'Life Expectancy', 'Fertility Rate', 'Region',     'Population'],
           ['CAN',    80.66,              1.67,      'North America',  33739900],
           ['DEU',    79.84,              1.36,      'Europe',         81902307],
           ['DNK',    78.6,               1.84,      'Europe',         5523095],
           ['EGY',    72.73,              2.78,      'Middle East',    79716203],
           ['GBR',    80.05,              2,         'Europe',         61801570],
           ['IRN',    72.49,              1.7,       'Middle East',    73137148],
           ['IRQ',    68.09,              4.77,      'Middle East',    31090763],
           ['ISR',    81.55,              2.96,      'Middle East',    7485600],
           ['RUS',    68.6,               1.54,      'Europe',         141850000],
           ['USA',    78.09,              2.05,      'North America',  307007000]];
      public scatter_ChartData =  [
              ['Date', 'Sales Percentage'],
              [new Date(2016, 3, 22), 78],
              [new Date(2016, 3, 21,9,30,2),88],
              [new Date(2016, 3, 20), 67],
              [new Date(2016, 3, 19,8,34,7), 98],
              [new Date(2016, 3, 18,15,34,7),95],
              [new Date(2016, 3, 16,7,30,45),89],
              [new Date(2016, 3, 16,15,40,35),68]
            ];
      public candle_ChartData = [
             ['Day','Low','Opening value','Closing value','High'],
             ['Mon', 28, 28, 38, 38],
             ['Tue', 38, 38, 55, 55],
             ['Wed', 55, 55, 77, 77],
             ['Thu', 77, 77, 66, 66],
             ['Fri', 66, 66, 22, 22]
           ];
       public pie_ChartData = [
                 ['Task', 'Hours per Day'],
                 ['Work',     11],
                 ['Eat',      2],
                 ['Commute',  2],
                 ['Watch TV', 2],
                 ['Sleep',    7] ];
       public bar_ChartData = [
               ['City', '2010 Population', '2000 Population'],
               ['New York City, NY', 8175000, 8008000],
               ['Los Angeles, CA', 3792000, 3694000],
               ['Chicago, IL', 2695000, 2896000],
               ['Houston, TX', 2099000, 1953000],
               ['Philadelphia, PA', 1526000, 1517000]];

       public line_ChartOptions = {
         title: 'Company Performance',
         curveType: 'function',
         legend: { position: 'bottom'
         }
       };
       public bubble_ChartOptions= {
         title: 'Correlation between life expectancy, fertility rate ' +
                       'and population of some world countries (2010)',
                hAxis: {title: 'Life Expectancy'},
                vAxis: {title: 'Fertility Rate'},
                bubble: {textStyle: {fontSize: 11}}

       };
       public candle_ChartOptions = {
         legend: 'none',
                  bar: { groupWidth: '100%' }, // Remove space between bars.
                  candlestick: {
                    fallingColor: { strokeWidth: 0, fill: '#a52714' }, // red
                    risingColor: { strokeWidth: 0, fill: '#0f9d58' }   // green
                  }
       };
       public scatter_ChartOptions = {
         legend: { position: 'bottom'
                  }
           title: 'Company Sales Percentage',
       };
       public bar_ChartOptions = {
         title: 'Population of Largest U.S. Cities',
              chartArea: {width: '50%'},
              hAxis: {
                title: 'Total Population',
                minValue: 0,
                textStyle: {
                  bold: true,
                  fontSize: 12,
                  color: '#4d4d4d'
                },
                titleTextStyle: {
                  bold: true,
                  fontSize: 18,
                  color: '#4d4d4d'
                }
              },
              vAxis: {
                title: 'City',
                textStyle: {
                  fontSize: 14,
                  bold: true,
                  color: '#848484'
                },
                titleTextStyle: {
                  fontSize: 14,
                  bold: true,
                  color: '#848484'
                }
              }
            };
       public pie_ChartOptions  = {
         title: 'My Daily Activities'
         width: 900,
         height: 500
       };        
}

profile.component.html:

    <h1>Profile here- {{name}}</h1>



       <div id="line_chart",[chartData]="line_ChartData", [chartOptions] = "line_ChartOptions",chartType="LineChart",GoogleChart/> </div>
       <div id="bubble_chart",[chartData]="bubble_ChartData", [chartOptions] = "bubble_ChartOptions",chartType="BubbleChart",GoogleChart/> </div>
       <div id="scatter_chart",[chartData]="scatter_ChartData", [chartOptions] = "scatter_ChartOptions",chartType="ScatterChart",GoogleChart/> </div>
       <div id="candle_chart",[chartData]="candle_ChartData", [chartOptions] = "candle_ChartOptions",chartType="CandlestickChart",GoogleChart/>  </div>   
       <div id="pie_chart",[chartData]="pie_ChartData", [chartOptions] = "pie_ChartOptions",chartType="PieChart",GoogleChart/>    </div> 
       <div id="bar_chart",[chartData]="bar_ChartData", [chartOptions] = "bar_ChartOptions",chartType="BarChart",GoogleChart/> </div>    

1 个答案:

答案 0 :(得分:1)

您忘记导入以下GoogleChart! :

import {GoogleChart} from './directives/angular2-google-chart.directive';

所以代码将是:

    import { Component, OnInit,HostBinding } from '@angular/core';
    import { Router,ActivatedRoute } from '@angular/router';
    import { slideInDownAnimation } from '../../animations/animations'
import {GoogleChart} from './directives/angular2-google-chart.directive';

    @Component({
       selector: 'profile-component2',
       directives: [GoogleChart],
      templateUrl:`../app/components/profile/profile.component.html`,

      animations:[slideInDownAnimation]
    })

    export class ProfileComponent2 implements OnInit {
    name="Shubham";
    message: string;
    @HostBinding('@routeAnimation') routeAnimation = true;
    @HostBinding('style.display')   display = 'block';
    @HostBinding('style.position')  position = 'absolute';
    public login:{} = {};
    private interval:any;
    ngOnInit() {
          console.log("profile component2 initialized");
      }


          public line_ChartData = [
                 ['Year', 'Sales', 'Expenses'],
                 ['2004',  1000,      400],
                 ['2005',  1170,      460],
                 ['2006',  660,       1120],
                 ['2007',  1030,      540]];
          public bubble_ChartData = [
               ['ID', 'Life Expectancy', 'Fertility Rate', 'Region',     'Population'],
               ['CAN',    80.66,              1.67,      'North America',  33739900],
               ['DEU',    79.84,              1.36,      'Europe',         81902307],
               ['DNK',    78.6,               1.84,      'Europe',         5523095],
               ['EGY',    72.73,              2.78,      'Middle East',    79716203],
               ['GBR',    80.05,              2,         'Europe',         61801570],
               ['IRN',    72.49,              1.7,       'Middle East',    73137148],
               ['IRQ',    68.09,              4.77,      'Middle East',    31090763],
               ['ISR',    81.55,              2.96,      'Middle East',    7485600],
               ['RUS',    68.6,               1.54,      'Europe',         141850000],
               ['USA',    78.09,              2.05,      'North America',  307007000]];
          public scatter_ChartData =  [
                  ['Date', 'Sales Percentage'],
                  [new Date(2016, 3, 22), 78],
                  [new Date(2016, 3, 21,9,30,2),88],
                  [new Date(2016, 3, 20), 67],
                  [new Date(2016, 3, 19,8,34,7), 98],
                  [new Date(2016, 3, 18,15,34,7),95],
                  [new Date(2016, 3, 16,7,30,45),89],
                  [new Date(2016, 3, 16,15,40,35),68]
                ];
          public candle_ChartData = [
                 ['Day','Low','Opening value','Closing value','High'],
                 ['Mon', 28, 28, 38, 38],
                 ['Tue', 38, 38, 55, 55],
                 ['Wed', 55, 55, 77, 77],
                 ['Thu', 77, 77, 66, 66],
                 ['Fri', 66, 66, 22, 22]
               ];
           public pie_ChartData = [
                     ['Task', 'Hours per Day'],
                     ['Work',     11],
                     ['Eat',      2],
                     ['Commute',  2],
                     ['Watch TV', 2],
                     ['Sleep',    7] ];
           public bar_ChartData = [
                   ['City', '2010 Population', '2000 Population'],
                   ['New York City, NY', 8175000, 8008000],
                   ['Los Angeles, CA', 3792000, 3694000],
                   ['Chicago, IL', 2695000, 2896000],
                   ['Houston, TX', 2099000, 1953000],
                   ['Philadelphia, PA', 1526000, 1517000]];

           public line_ChartOptions = {
             title: 'Company Performance',
             curveType: 'function',
             legend: { position: 'bottom'
             }
           };
           public bubble_ChartOptions= {
             title: 'Correlation between life expectancy, fertility rate ' +
                           'and population of some world countries (2010)',
                    hAxis: {title: 'Life Expectancy'},
                    vAxis: {title: 'Fertility Rate'},
                    bubble: {textStyle: {fontSize: 11}}

           };
           public candle_ChartOptions = {
             legend: 'none',
                      bar: { groupWidth: '100%' }, // Remove space between bars.
                      candlestick: {
                        fallingColor: { strokeWidth: 0, fill: '#a52714' }, // red
                        risingColor: { strokeWidth: 0, fill: '#0f9d58' }   // green
                      }
           };
           public scatter_ChartOptions = {
             legend: { position: 'bottom'
                      }
               title: 'Company Sales Percentage',
           };
           public bar_ChartOptions = {
             title: 'Population of Largest U.S. Cities',
                  chartArea: {width: '50%'},
                  hAxis: {
                    title: 'Total Population',
                    minValue: 0,
                    textStyle: {
                      bold: true,
                      fontSize: 12,
                      color: '#4d4d4d'
                    },
                    titleTextStyle: {
                      bold: true,
                      fontSize: 18,
                      color: '#4d4d4d'
                    }
                  },
                  vAxis: {
                    title: 'City',
                    textStyle: {
                      fontSize: 14,
                      bold: true,
                      color: '#848484'
                    },
                    titleTextStyle: {
                      fontSize: 14,
                      bold: true,
                      color: '#848484'
                    }
                  }
                };
           public pie_ChartOptions  = {
             title: 'My Daily Activities'
             width: 900,
             height: 500
           };        
    }

Angular 2特定版本存在一些问题。参考:https://github.com/vimalavinisha/angular2-google-chart/issues

文档here

中提到了上述导入