1

データがバックボーンコレクションにあるd3で棒グラフを作成しています。ユーザーがチャートのバーを操作したり、バーを選択したり、データを編集したりできるようにしたいと思います。

これを行うための最良の方法は、チャートのビューとバーの別のビューを作成することであると考えました。

チャートビューでは、

create_bar:function(){

    var chart = d3.select( "div#chart");

    timeline.selectAll( "div")
    .data(Myapp.chart.models)
    。入力()
    .append(function(d){console.log(d);
                        var bar = new Myapp.Views.ChartBar({model:d});
                        リターンbar.el;

        });

 }

appendしかし、残念ながら、関数で失敗したように見えます。

私は、bar div内に適度に複雑なhtmlと、いくつかのデータポイントを配置することを検討しています。

これを行う方法について何か提案はありますか?

4

1 に答える 1

1

d3 を使用したバックボーン ビューは、奇妙な組み合わせのようなものですが、これが機能する 1 つの方法を次に示します。

timeline.selectAll("div")
  .data(Myapp.chart.models)
  .enter()
  .append('div')// or 'span' or even Myapp.Views.ChartBar.prototype.el
  .each(function(d, i) {
    var bar = new Myapp.Views.ChartBar({model:d});
    bar.setElement(this);// Here "this" is the dom element
  }

編集: への呼び出しをスキップして、最後の 2 行を 1 行に結合できますsetElement()

var bar = new Myapp.Views.ChartBar({model:d, el:this});
于 2012-10-29T05:42:12.543 に答える