0

angular-nvd3-directives で実装された作業中の時系列折れ線グラフに、現在の時間の垂直の「Now」マーカーを追加したいと考えています。このようなもの: http://i.imgur.com/XsmfOXe.jpg

以前は、純粋な d3.js を使用してこのチャートを作成し、機能させました。そこで、既存のソリューションを次のようなディレクティブに移植しようとしました。

myApp.directive( 'nowMarker', function () {
  return {
      restrict: 'A',
      link: function (scope, element, attr) {
          var line = d3.svg.line()
            .interpolate("basis")
            // ####### this cannot work #######
            .x(function (d) { return x(d.t); })
            .y(function (d) { return y(d.value); });
            // ################################

          element.children()[0].append('svg:path')
            .attr("class", "NOW")
            .attr('d', line(scope.nowData))
            .attr('stroke', '#14022B')
            .attr('stroke-width', '1px')
            .attr('stroke-dasharray', ('5,5'))
            .attr('fill', 'none');
        }
    };
});

これは私が立ち往生しているところです。angularjs-nvd3-directives チャートの x および y スケールにアクセスする方法がわかりません。

HTML は次のとおりです。

<nvd3-line-chart nowMarker ...>
</nvd3-line-chart>

私のチャートコントローラーには次のものがあります:

var now = new Date();
$scope.nowData = [
        {name: "NOW", t: now, value: 0}, 
        {name: "NOW", t: now, value: 100}
    ];

エラー メッセージは表示されず、単に何も起こりません。

どんな助けでも大歓迎です。ありがとう!ベネット

4

1 に答える 1

1

他の誰かがこれを便利だと思った場合:

最終的に、「NOW」シリーズをチャート データに追加し、特定の色を割り当てました。

var tNow = new Date();
var sNow = {
    key: "NOW",
    values: [
        [tNow, 0],
        [tNow, max]
    ],
    color: '#FFFFFF'
};
于 2015-05-04T07:59:14.877 に答える