D3 で CSV から解析されたデータを取得しようとしています。一度解析し、配列を変数に格納して、複数の関数がアクセスできるようにします。私は、残念ながら、親変数がそれを可能にする名前空間モジュール内で作業しています。簡単な例を次に示します。
var namespace = namespace || {};
namespace.module = function() {
var dataItems; <== want to be accessible to all functions inside module
function getData() {
d3.csv('data.csv', function(d) {
dataItems = d;
});
}
function drawChartA() {
// want to have access to parsed CSV data here
console.log(dataItems); <== "error: undefined"
}
return {
getData: getData,
drawChartA: drawChartA
}
}();
// run code
$(document).ready(function() {
namespace.module.getData();
namespace.module.drawChartA();
});
解析された配列にアクセスできるように見える唯一の方法は、 getData() 関数のスコープ内ですが、外側ではありません。drawChartA メソッド内から getData() を呼び出してみましたが、最初は同じ結果でした。別の投稿では、vars を Window オブジェクトの下に格納することを提案していましたが、名前空間モジュール内ですべてを処理する方法があるべきではありませんか? そのすべてについてまだ学んでいます..アドバイスしてください!:)