1

Highchartsライブラリで作成したグラフを表示するためのカスタムディレクティブを作成しました。同じディレクティブを同じビューで使用し、異なるデータをバインドします

ここでは、このディレクティブを基に、複数のグラフを同じビューで作成したいと考えています。

これは、私が持っている現在のコードでは、以下のようにはできません。

同じビューで別のデータをバインドすることができるようにコードを整理するにはどうすればよいですか?

以下に、問題を説明するコード例を示します。

指令

function dateChart() { 
    return { 
    restrict: 'AE', 
    scope: { 
     title: '@' 
    }, 
    template: '<div id="chart"></div>', 
    link: function(scope, element, attrs) { 
     var chart; 

     function createChart() { 
     chart = new Highcharts.Chart({ 
      chart: { 
      title: scope.title 
     }); 
     } 

コントローラ

vm.title = "My Chart"; 

HTMLテンプレート

<date-chart></date-chart> 

    <date-chart></date-chart> 
+0

同じディレクティブの複数のインスタンスは、あなたがすべきこと隔離された範囲を利用する。私はあなたが正しい方向にいると思います。ちょうど異なるタイトルを添付してください。 – thecodejack

答えて

1

あなたはTELする必要がある最初のリットルのデータはあなたのチャートのデータは、あなたがこのようにそれを一緒に渡すことができ$scope.someData2$scope.someData1であるとあれば

function dateChart() { 
    return { 
    restrict: 'AE', 
    scope: { 
     title: '@' 
     chartData: '=' 
    }, 
    template: '<div id="chart"></div>', 
    link: function(scope, element, attrs) { 
     var chart; 

     function createChart() { 
     chart = new Highcharts.Chart({ 
      chart: { 
      title: scope.title 
     }); 
     } 

に沿って渡されることを指令:

<date-chart chart-data="someData1"></date-chart> 

<date-chart chart-data="someData2"></date-chart> 
関連する問題