2016-04-12 6 views
2

Я пытаюсь использовать ng2-highcharts в своем приложении. Но после того, как импортировать необходимые классы с помощью оператораПроблема с интеграцией ng2-highcharts

import {Ng2Highcharts, Ng2Highmaps, Ng2Highstocks} from 'ng2-highcharts/ng2-highcharts';** 

если я пытаюсь определить эти классы в массиве директив в моем компоненте (directives: [Ng2Highcharts]), я получаю следующее сообщение об ошибке в моей консоли.

[TypeError: require is not a function][1] 

Мой System.config выглядит следующим образом System.config

Может кто-нибудь сказать мне, что я здесь отсутствует?

ответ

1

Вам нужно определить 'NG2-highchart' в конфигурации SystemJS:

<script> 
    System.config({ 
    map: { 
    'ng2-highchart': 'node_modules/ng2-highchart' 
    }, 
    (...) 
    }); 
</script> 

Смотрите этот вопрос для более подробной информации:

+0

Я определил его в своей конфигурации SystemJS, но проблема все еще существует. Вы можете увидеть мою конфигурацию SystemJs, если вы нажмете ссылку System.config в моем вопросе. – Ashwin

+0

Я думаю, что вам не нужна запись «ng2-highchart» в блоке 'packages'. Один в «карте» один достаточно ... –

+0

Я боюсь, что нет. Оставляя это, выдается сообщение об ошибке «SyntaxError: Неожиданный токен <». Он даже не находит файл ng2-highcharts.js, если я удалю запись в блоке пакетов. – Ashwin

0

Удалить формат: «регистр 'из ваших пакетов. Это поможет определить правильный формат. Или вы можете добавить формат следующим образом:

System.config({ 
     packages: {   
      app: { 
      format: 'register', 
      defaultExtension: 'js' 
      }, 
      "node_modules/ng2-highcharts": { 
       format: 'cjs', 
       defaultExtension: 'js' 
       } 
     }, 
     map: { 
      "ng2-highcharts/ng2-highcharts" : "node_modules/ng2-highcharts/ng2-highcharts" 
     }, 
     paths: { 
      "ng2-highcharts/ng2-highcharts" : "node_modules/ng2-highcharts/ng2-highcharts" 
      } 
     }); 
1

Вот мой образец подсвечника ... посмотрите, поможет ли это.

import { Component } from '@angular/core'; 
import {JSONP_PROVIDERS, Jsonp} from '@angular/http'; 
import { CHART_DIRECTIVES } from 'angular2-highcharts'; 


@Component({ 
    selector: 'high-chart', 
    directives: [CHART_DIRECTIVES], 
    providers: [JSONP_PROVIDERS], 
    template: ` 
    <h2> This is HighChart CandleStick component </h2> 

     <chart type="StockChart" [options]="options3"></chart> 
    ` 
}) 

export class HighChartsComponent { 

    options3: Object; 

    constructor(jsonp : Jsonp) { 

     jsonp.request('https://www.highcharts.com/samples/data/jsonp.php?a=e&filename=aapl-ohlc.json&callback=JSONP_CALLBACK').subscribe(res => { 
      this.options3 = { 
       title : { text : 'CandleSticks' }, 
       rangeSelector : { 
        selected : 1 
       }, 
       series : [{ 
        type : 'candlestick', 
        name : 'CandleSticks', 
        data : res.json(), 
        dataGrouping : { 
        units : [ 
         [ 
          'week', // unit name 
          [1] // allowed multiples 
         ], [ 
          'month', 
          [1, 2, 3, 4, 6] 
         ] 
        ] 
       }, 
        tooltip: { 
         valueDecimals: 2 
        } 
       }] 
      }; 

     }); 

} 
Смежные вопросы