2016-04-22 4 views
0

D3のcsvファイルから項目を入力してデータリストにオプション要素を追加しようとしています。私が理解しているところでは、自分のデータリストを選択し、カラムNAMEのエントリをcsvにロードしてデータをバインドし、データの値を持つオプションとともにデータリストに追加する必要があります。なぜ要素が作られていないのか、私はそれが私のデータがどのように扱われているかに関係していると思います。データリストの要素をd3に作成する

d3.select("datalist") 
.data(d3.csv("Input/domain_data.csv").row(function(d){return d.NAME})) 
.enter() 
.append("option") 
.attr("value", function(d){return d}) 
+0

私はd3.csvが非同期であるため、すぐには何も返されないと推測します。 – Oleg

+0

CSVを関数にロードし、その中にオプションを追加します。 –

答えて

3

まず、d3.csvはあなたが応答が到着するのをを待つセットアップにコールバックを必要と意味、非同期です。次に<option>の選択でdataに電話する必要があります。つまり、selectAll('option')に追加することができます。

// Start off by doing an HTTP request to a server: 
d3.csv('path/to/file.csv') 
    .row(function (d) { return d.NAME }) 
    .get(function (error, rows) { 
    // The response from the server has arrived (maybe check for errors too?). 
    // Let's create an empty selection of options inside a datalist: 
    d3.select('datalist').selectAll('option') 
     .data(rows) // performing a data join 
     .enter() // extracting the entering selection 
     .append('option') // adding an option to the selection of options 
     .attr('value', function (d) { return d; }); // add attribute 
    }); 
関連する問題