3

emberdata を d3 内でオブジェクトを作成するためのデータとして使用したいと考えています。コントローラー モデルの項目を新しい JavaScript オブジェクトに変換し、この新しい配列を d3 データに与えようとしています。ここにコードがあります

App.GraphicsView = Ember.View.extend( {
didInsertElement: function() {
    var svg = d3.select("#svg");
    var data = this.get('controller').get('model').get('content');
    var newData = [];
    for(var i = 0; i < data.length; i++) {
          newData.push(data[i]);
     }
    var graphics = svg.selectAll("rect")
        .data(newData)
        .enter()
        .append("rect");
    graphics.attr("x", function(d, i) {
        return d.get('x');
    })
}

しかし、データ変数は実際には配列ではないので、それを反復することはできません

4

3 に答える 3

1

別の例を次に示します: http://jsfiddle.net/2UPLp/16/light/

必要:

d3.v2.min.js
handlebars-1.0.0.beta.6.js
ember-1.0.pre.min.js
于 2013-05-30T19:32:06.777 に答える
0

ここに別のアプローチがあります

https://github.com/sabithpocker/ember-appkit-d3-sample

この特定の方法では、d3 でパスを生成し、Ember を使用してそれを svg にバインドしています。これにより、アプリ内のデータ変更に対応するパスが作成されます。この例では、d3 を使用して svg をレンダリングするのではなく、d3 API を使用してパスを計算し、それを svg で使用しています。

于 2014-03-05T19:16:40.677 に答える