Как использовать Highchart на Angular?

Я хочу сделать диаграмму с Highchart на своем ангаре, но я застрял с ней из-за отсутствия информации об использовании Highchart в Угловой на официальном сайте Highchart.

Это библиотека высокая карта в queue-dashboard.component.ts:

import { Component, OnInit, ViewEncapsulation } from '@angular/core';
import { CountryunitService } from '../../countryunit.service';
import * as Highcharts from 'highcharts';
import { Injectable } from '@angular/core';
import { HttpEvent, HttpInterceptor, HttpHandler, HttpRequest } from '@angular/common/http';
import { map } from 'lodash';

А это содержимое внутри ngOnInit() queue-dashboard.component.ts

ngOnInit() {

  var chart = Highcharts.chart('container', {

    title: {
      text: 'Chart.update'
    },

    subtitle: {
      text: 'Plain'
    },

    xAxis: {
      categories: ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec']
    },

    series: [{
      type: 'column',
      colorByPoint: true,
      data: [29.9, 71.5, 106.4, 129.2, 144.0, 176.0, 135.6, 148.5, 216.4, 194.1, 95.6, 54.4],
      showInLegend: false
    }]

  });

Что мне делать, если я хочу сделать вызов диаграммы внутри этого queue-dashboard.component.html?

<div eds-tile class = "xl-6" style = "height: 350px">
<eds-tile-title>Count of Ticket ID by CU ID</eds-tile-title>
<!-- Highchart On This -->
</div>

используйте angular-highcharts, DRY, если вам не нужно

ABOS 15.02.2019 19:04
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
В настоящее время производительность загрузки веб-сайта имеет решающее значение не только для удобства пользователей, но и для ранжирования в...
Безумие обратных вызовов в javascript [JS]
Безумие обратных вызовов в javascript [JS]
Здравствуйте! Юный падаван 🚀. Присоединяйся ко мне, чтобы разобраться в одной из самых запутанных концепций, когда вы начинаете изучать мир...
Система управления парковками с использованием HTML, CSS и JavaScript
Система управления парковками с использованием HTML, CSS и JavaScript
Веб-сайт по управлению парковками был создан с использованием HTML, CSS и JavaScript. Это простой сайт, ничего вычурного. Основная цель -...
JavaScript Вопросы с множественным выбором и ответы
JavaScript Вопросы с множественным выбором и ответы
Если вы ищете платформу, которая предоставляет вам бесплатный тест JavaScript MCQ (Multiple Choice Questions With Answers) для оценки ваших знаний,...
1
1
714
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Существует несколько способов отобразить диаграмму с помощью HTML. Постараюсь объяснить некоторые из них

1. Мы можем отобразить диаграмму на элементе, указав имя элемента в объекте конфигурации диаграммы. Итак, предположим, вы хотите отобразить диаграмму в div, который вы упомянули в файле HTML.

<div eds-tile class = "xl-6" style = "height: 350px">
<eds-tile-title>Count of Ticket ID by CU ID</eds-tile-title>
<div id = "chartContainer"></div>
<!-- Highchart On This -->
</div>

Вы можете настроить объект диаграммы, отобразив элемент

import { Component, OnInit, ViewEncapsulation } from '@angular/core';
import { CountryunitService } from '../../countryunit.service';
import * as Highcharts from 'highcharts';
import { Injectable } from '@angular/core';
import { HttpEvent, HttpInterceptor, HttpHandler, HttpRequest } from '@angular/common/http';
import { map } from 'lodash';

класс экспорта YourComponentName реализует OnInit{

setTimeout( ()=>{
  this.Highcharts.chart({
   chart: {
      type: 'column',
      renderTo:'chartContainer',
  },
  title: {
      text: 'Chart.update'
  },

  subtitle: {
      text: 'Plain'
  },

  xAxis: {
      categories: ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec']
  },

  series: [{
      type: 'column',
      colorByPoint: true,
      data: [29.9, 71.5, 106.4, 129.2, 144.0, 176.0, 135.6, 148.5, 216.4, 194.1, 95.6, 54.4],
      showInLegend: false
  }]

})},3000);
  1. Другой способ: вы можете создать объект конфигурации динамической диаграммы и привязать его к контейнеру, который вы пытаетесь построить.

    this.chartConfig = {
     title: {
      text: 'Chart.update'
      },
    
     subtitle: {
      text: 'Plain'
      },
    
     xAxis: {
      categories: ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep',    'Oct', 'Nov', 'Dec']
      },
    
     series: [{
      type: 'column',
      colorByPoint: true,
      data: [29.9, 71.5, 106.4, 129.2, 144.0, 176.0, 135.6, 148.5, 216.4, 194.1, 95.6, 54.4],
      showInLegend: false
      }]
    }
    

и в вашем HTML вы можете динамически привязываться к диаграмме (директиве)

 <div eds-tile class = "xl-6" style = "height: 350px">
<eds-tile-title>Count of Ticket ID by CU ID</eds-tile-title>
<div id = "chartContainer">
<chart [options] = "chartConfig"></chart>
 </div>
<!-- Highchart On This -->
</div>

Может быть вероятность того, что css highcharts не будет занимать полную высоту и ширину. Чтобы добавить, вы можете добавить этот css в свой компонент css/scss.

chart {
 width: 100% !important;
 margin: 0 auto;
 display: block;
}

.highcharts-root {
  width: 100% !important;
  display: block;
  } 

 .highcharts-container {
   width: 100% !important;
  }

дайте мне знать о любых ошибках, с которыми вы сталкиваетесь, поможете ли вы или дайте хорошие ссылки, которые могут вам помочь

shikhar 15.02.2019 19:01

подожди @shikhar, пойду попробую

aldi 15.02.2019 19:02

Привет, сэр @shikhar, первое решение, которое вы дали, действительно работает, но все равно выдает ошибку «ошибка TS2304: не удается найти имя« требуется »».

aldi 15.02.2019 19:08

@aldi вы можете напрямую импортировать, извините за метод require, а для второго метода вам нужно установить пакет npm с именем «angular-highcharts». Обратитесь к этому для того же npmjs.com/package/angular-highcharts

shikhar 15.02.2019 19:21

Другие вопросы по теме