GithubHelp home page GithubHelp logo

barendb / highcharts-ng Goto Github PK

View Code? Open in Web Editor NEW

This project forked from pablojim/highcharts-ng

0.0 2.0 0.0 297 KB

AngularJS directive for Highcharts

License: MIT License

JavaScript 100.00%

highcharts-ng's Introduction

highcharts-ng

AngularJS directive for Highcharts

A simple Angularjs directive for Highcharts.

Current Version (0.0.6)

<highchart id="chart1" config="chartConfig"></highchart>

The highchartsNgConfig resembles an exploded highcharts options object:

highchartsNgConfig = {
             //This is not a highcharts object. It just looks a little like one!
             options: {
                 //This is the Main Highcharts chart config. Any Highchart options are valid here.
                 //will be ovverriden by values specified below.
                 chart: {
                     type: 'bar'
                 },
                 tooltip: {
                     style: {
                         padding: 10,
                         fontWeight: 'bold'
                     }
                 },
             },

             //The below properties are watched separately for changes.

             //Series object (optional) - a list of series using normal highcharts series options.
             series: [{
                 data: [10, 15, 12, 8, 7]
             }],
             //Title configuration (optional)
             title: {
                 text: 'Hello'
             },
             //Boolean to control showng loading status on chart (optional)
             loading: false,
             //Configuration for the xAxis (optional). Currently only one x axis can be dynamically controlled.
             //properties currentMin and currentMax provied 2-way binding to the chart's maximimum and minimum
             xAxis: {
              currentMin: 0,
              currentMax: 20,
              title: {text: 'values'}
             },
             //Whether to use HighStocks instead of HighCharts (optional). Defaults to false.
             useHighStocks: false
             },
             //size (optional) if left out the chart will default to size of the div or something sensible.
             size: {
               width: 400,
               height: 300
             },
             //function (optional)
             func: function (chart) {
               //setup some logic for the chart
             }

All properties on the chart configuration are optional. If you don't need a feature best to leave it out completely - Highcharts will usually default to something sensible. Each property is watched for changes by angularjs. NOTE: A common error is to put other highcharts options directly into the highchartsNgConfig. In general if the highcharts option you want isn't listed above you probably want to put it in highchartsNgConfig.options

Features:

  • Adding and removing series
  • Setting/Updating Chart options
  • Updating the chart title
  • 2 way binding to chart xAxis
  • Control of Loading status
  • Resizes with screen size changes.

Caveats:

  • Due to many equality checks the directive maybe slow with large datasets
  • Whole Chart/Series is often redrawn where a simple update of data would suffice
  • If you don't assign ids to your series - incremental ids will be added
  • The 2 way binding to xAxis properties should be treated as experimental
  • When using with a highstocks navigator errors can occur
  • Needs tests!

Versions

Version 0.0.6

  • Added no data logic - thanks @eranbetzalel
  • Added reflow event thanks @pajooh
  • Added example for size setting
  • Minor bug fixes

Version 0.0.5

  • Now watches size property
  • More robust checks around axes

Version 0.0.4

  • Fix to minimised file

Version 0.0.3

  • Migrated to grunt, bower and npm
  • Bug fixes
  • Some speedups

Version 0.0.2

  • Removed JQuery dependency
  • Allowed for null config option

Version 0.0.1 (not compatible with current version)

<highchart id="chart1" series="chart.series" title="chart.title" options="chart.options"></highchart>

See an example here: http://jsfiddle.net/pablojim/46rhz/

Features:

  • Adding and removing series
  • Setting/Updating Chart options
  • Updating the chart title

Caveats:

  • Due to many equality checks the directive maybe slow with large datasets (this is solvable though...)
  • Whole Chart/Series is often redrawn where a simple update of data would suffice
  • If you don't assign ids to your series - incremental ids will be added
  • Needs tests!

Build Status

highcharts-ng's People

Contributors

amaury-d avatar barendb avatar bitdeli-chef avatar bpaul avatar cebor avatar christopherlakey avatar crusat avatar eranbetzalel avatar fouzes avatar jonchay avatar pablojim avatar pajooh avatar rrichter avatar willfarrell avatar

Watchers

 avatar  avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.