1

Rails 3アプリでHighchartsを使用して、ユーザーが注釈を作成してグラフに保存できるようにしています(ラベル付きの専用散布図シリーズで保存しています)。次のように、レコードをデータベースに保存する方法を理解できました。

$.ajax({
    type: "POST",
    url: "<%= service_annotations_path.to_s %>.json",
    data: {
      annotation: {
        name: name,
        time: new Date(x),
        value: y,
      }
    },
    success: function(msg){
      alert(msg);
    }
});

しかし、私はAJAXで削除を実装する方法を理解するのに苦労しています。問題は2つあるようです。

  1. チャートからJSを介して取得した選択したポイントのx/y座標を使用して注釈レコードを見つける必要がありますが、これをコントローラー/ヘルパーに戻す方法がわかりません。私は次のようなことを考えました:

    var annId = "<%= find_annotation(this.x, this.y) %>";
    

    ...動作する可能性があり、オブジェクトを削除するために使用できるアノテーションIDを返しますが、JavaScriptからRubyでこれらのJS座標変数[this.xおよびthis.y]にアクセスする方法がわかりません...私が読んでいることは、それが通常行われていないことを示唆しています。(そして、非推奨になっているように見える回避のために私が見つけた例。)

  2. 次に、実際の削除AJAXを把握する必要があります...

    $.ajax({
        type: "DELETE",
        url: '<%= service_annotations_path.to_s %>' +  '/' + this.id + '.json',
        data: {
          annotation: {
            time: new Date(this.x),
            value: this.y,
          }
        },
        success: function(msg){
          alert(msg);
        }
    });
    

    これ自体は、サービスリソースの下にネストされているという事実によって複雑になっています。

最初の部分をうまく処理できれば、xパラメータとyパラメータをJSからRubyに渡すことができるはずです。どんなポインタでも大歓迎です。

4

1 に答える 1

0

Highchart は、シリーズのポイントに対してさまざまなイベントを提供します。

http://api.highcharts.com/highcharts#plotOptions.series.point.events

を使用してポイントの x と y を取得できます

plotOptions: {
            series: {
                cursor: 'pointer',
                point: {
                    events: {
                        click: function() {
                            console.log(this);
                            alert ('X: '+ this.x +', Y: '+ this.y);
                        }
                    }
                }
            }
        }
于 2012-09-11T07:52:20.670 に答える