0

現在サイドバーがあり、下の図にある要素がありますulliその右側に 3 つのグラフがあります。各グラフには、データを更新するための独自の REST Web サービスがあります。サイドバーの項目をクリックすると、それらのチャートを更新したいと思います。(Ajax 呼び出し経由)

ここに画像の説明を入力

このための高レベルの設計は何ですか? たとえばlink_toli要素に必要ですか? そこに何を入れますか?パラメータを渡すには?電話をかける方法は?人生を楽にする宝石はありますか?

いくつかの高レベルおよびさらに低レベルの設計が高く評価されているため、どこから始めればよいかがわかります。

4

1 に答える 1

1

これは、Rails の質問というよりも AJAX の質問です。

にクリック ハンドラーを追加しli(おそらく jQuery が最も簡単な方法です)、チャートの REST エンドポイントに AJAX 要求を送信する必要があります。設定によっては、これらのエンドポイントが探しているデータを JSON 形式で返してから、チャートの値を更新することをお勧めします (気が狂って d3js を使用してそれらを描画するかもしれません)。

REST エンドポイントがphysician_id正しいデータを返すには、または何かが必要であり、どこかからこれを取得する必要があると思います。私は通常、要素のデータ属性として id を追加するだけです。

    <li class="js-physician" data-id="<%= physician.id %>">Physician X</li>

リストを取得するために @physicians コレクションを反復処理していると仮定しています。

次に、jsに対して次のようなことを行います

    $(document).on('click', '.js-physician', function(e) {
      var physician_id = e.target.getAttribute('data-id');
      params = { // this is your AJAX object
        type: 'GET',
        url: '/some_rest_url?physician_id=' + physician_id,
        success: function(data) {
          // update the charts with the returned data
        },
        error: function(jqXHR, textStatus, errorThrown) {
          // handle error
        }
      };
      $.ajax(params);
    });

あとは、コールバック ハンドラを設定して、正しいデータを送信していることを確認するだけです。

于 2013-08-06T15:49:44.453 に答える