前提・実現したいこと
JavaScriptで開発をしているのですが、
ある場所では値が反映されているのに対して、ある場所ではundefinedになってしまいます。
こちらをundefinedから値が反映されるようにしたいです。
変数名:thresです。
発生している問題・エラーメッセージ
値が反映されずundefinedになってしまう。
該当のソースコード
JS
1 // Load the Visualization API and the controls package. 2 google.charts.load('current', { 'packages': ['corechart', 'controls'] }); 3 google.setOnLoadCallback(drawDashboard); 4 let chart; 5 let thres; 6 let scale = []; 7 8 function drawDashboard() { 9 let dataArray = [['breaks','count']]; 10 let df = $.Deferred(); 11 12 13 $('#search').click(function() { 14 $.ajax({ 15 data: 'post', 16 url: "http://localhost:3000/result/" + $('#zip').val(), 17 dataType : 'json', 18 }).done(function(data){ 19 console.log("success"); 20 //Jsonデータのbreaks,countをGoogleChartのデータ配列に格納 21 let data_item = data.count.map((c, i) => { 22 return [data.breaks[i].toString(), c]; 23 }); 24 dataArray.push(...data_item); 25 console.log(dataArray); 26 df.resolve(); 27 //Jsonデータを各項目に反映 28 $('#view_code').val(data.view_code); 29 $('#view_code_url').val(data.view_code_url); 30 $('#name').val(data.name); 31 if(data.gender == 0){ 32 $('#gender').val("不明"); 33 }else if(data.gender == 1){ 34 $('#gender').val("男"); 35 }else if(data.gender == 2){ 36 $('#gender').val("女"); 37 } 38 $('#category').val(data.category); 39 $('#num').val(data.num); 40 $('#data_num').val(data.data_num); 41 $('#data_type').val(data.data_type); 42 $('#unit').val(data.unit); 43 $('#illness').val(data.illness); 44 thres = data.thres; 45 scale = data.scale; 46 console.log(thres);//こちらではきちんとthresの値が反映されています。------------ 47 }).fail(function(){ 48 console.log("error"); 49 }); 50 51 52 }); 53 54 55 df.promise().done(function(){ 56 let chartdata = google.visualization.arrayToDataTable(dataArray); 57 console.log(thres);//こちらではthresの値がundefinedになる。------------ 58 // Create a dashboard. 59 let dashboard = new google.visualization.Dashboard( 60 document.getElementById('dashboard_div')); 61 62 // Create a range slider, passing some options 63 var donutRangeSlider = new google.visualization.ControlWrapper({ 64 'controlType': 'NumberRangeFilter', 65 'containerId': 'filter_div', 66 'options': { 67 'filterColumnLabel': 'count' 68 } 69 }); 70 71 // Create a pie chart, passing some options 72 let Histogram= new google.visualization.ChartWrapper({ 73 'chartType': 'Histogram', 74 'containerId': 'chart_div', 75 'options': { 76 'width': 900, 77 'height': 600, 78 'pieSliceText': 'value', 79 'legend': 'right', 80 'histogram': { 81 hideBucketItems: true, 82 bucketSize: 10 83 }, 84 'bar': { groupWidth: "100%" }, 85 'colors': ['gray'] 86 }, 87 88 }); 89 dashboard.bind(donutRangeSlider, Histogram); 90 91 dashboard.draw(dataArray); 92 console.log(filter_div.value); 93 changeOptions = function () { 94 Histogram.setOption('histogram.bucketSize', document.getElementById('example').value); 95 dashboard.draw(dataArray); 96 }; 97 98 }); 99 100 } 101
試したこと
ここに問題に対して試したことを記載してください。
補足情報(FW/ツールのバージョンなど)
ここにより詳細な情報を記載してください。
回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2021/04/01 05:49