0
サービスからデータを取得します。プルされたデータには、y軸(someDataとsomeOtherData)の間で切り替える2つのプロパティがあります。データが変更されていない場合のNVD3 - 再描画/更新チャート
y: function(d){ return $scope.mode === '1' ? d.someData : d.someOtherData; }
これは私のディレクティブのコントローラです:アイデアは私の親コントローラでのクリックイベントに基づいて、チャートが私のy軸(どちらかsomeDataがまたはsomeOtherData)上の別のプロパティを表示することです。
controller: function($scope, Chart) {
$scope.data = [];
$scope.data = Chart.testPortfolio(); // I only want data to be fetched once as it doesn't changes
$scope.update = function() {
//$scope.data = Chart.testPortfolio(); <-- if this line is uncommented it works, but I don't want to fetch data on every click event
$scope.pieOptions = {
chart: {
type: 'pieChart',
height: 400,
x: function(d){ return d.name; },
y: function(d){ return $scope.mode === '1' ? d.someData : d.someOtherData; },
showLabels: false,
labelThreshold: 0.01
}
};
}
$scope.update();
// this listens to my click event for switching
$scope.$on('some-event', function(e, args) {
$scope.mode = args.mode;
$scope.update();
});
}
そして、このディレクティブのhtmlです:私はデータ私はプロパティを切り替えするたびに再フェッチ場合は、次のコードは、私がやりたいだろう
<nvd3 options='pieOptions' data='data'></nvd3>
をどのようにすることができますy軸のプロパティを切り替えるたびにデータを再フェッチしなくても、グラフを再描画/更新できますか?