Javascript 将数组传递到视图而不使用html编码问题节点js(把手)
我正在调用yahoo finance api,该api返回一个csv。然后我想将csv文件转换为一个数组,google charts可以读取该数组。问题是当我将数组传递给视图时,它有一堆html编码的字符 例如,我想传递数组:Javascript 将数组传递到视图而不使用html编码问题节点js(把手),javascript,node.js,handlebars.js,Javascript,Node.js,Handlebars.js,我正在调用yahoo finance api,该api返回一个csv。然后我想将csv文件转换为一个数组,google charts可以读取该数组。问题是当我将数组传递给视图时,它有一堆html编码的字符 例如,我想传递数组: [['Year', 'Sales', 'Expenses'],['2004',1000,400],['2005',1170,460],['2006',660,1120],['2007',1030,540]] 但是当呈现页面时,它会抛出一个错误,传递的数组如下所示: [[
[['Year', 'Sales', 'Expenses'],['2004',1000,400],['2005',1170,460],['2006',660,1120],['2007',1030,540]]
但是当呈现页面时,它会抛出一个错误,传递的数组如下所示:
[['Year', 'Sales', 'Expenses'],['2004',1000,400],['2005',1170,460],['2006',660,1120],['2007',1030,540]]
var data = google.visualization.arrayToDataTable([
['Year', 'Income', 'Expenses', 'Profit'],
['2014', 1000, 400, 200],
['2015', 1170, 460, 250],
['2016', 660, 1120, 300],
['2017', 1030, 540, 350]
]);
这是我的index.js:
var router = require('express').Router();
function GetCompanyInformation(callback) {
var request = require('request');
request('http://table.finance.yahoo.com/table.csv?s=orcl&a=0&b1&c=2010&d=0&e=1&f=2011&g=d&y=0&z=orcl', function (error, response, data) {
if (!error && response.statusCode == 200) {
return callback(null,data);
}
return callback('An error has occurred.',null);
})
}
/* GET home page. */
router.get('/', function(req, res, next) {
GetCompanyInformation(function(err, data){
res.render('index', {
title: 'Express',
data : "[['Year', 'Sales', 'Expenses'],['2004',1000,400],['2005',1170,460],['2006',660,1120],['2007',1030,540]]"
});
});
});
module.exports = router;
以下是我的看法:
<div class="container">
<div class="row">
<h1>{{ title }}</h1>
<hr>
<div id="stock-chart-container" class="col-lg-12">
<h3>Item Name</h3>
<hr>
<div id="company-performance-chart"></div>
</div>
</div>
</div>
<script type="text/javascript">
google.charts.load('current', {'packages':['corechart']});
google.charts.setOnLoadCallback(drawChart);
function drawChart() {
var data = google.visualization.arrayToDataTable({{data}});
var options = {
chart: {
title: 'Company Performance',
subtitle: 'Sales, Expenses, and Profit: 2014-2017',
}
};
var chart = new google.charts.Bar(document.getElementById('company-performance-chart'));
chart.draw(data, options);
}
<!--RESIZE THE GOOGLE CHART (MAKES IT RESPONSIVE)-->
$(window).resize(function(){
drawChart();
});
</script>
我是不是走错了路
@James当我将其作为数组传递时,我在渲染视图中得到:
var data = google.visualization.arrayToDataTable(Year,Sales,Expenses,2004,1000,400,2005,1170,460,2006,660,1120,2007,1030,540);
使用
{{}}
而不是{{}}您的数据属性是一个字符串,而不是一个数组(它以双引号开头)。我已尝试删除引号,使其成为一个数组,但传递不正确。请解释原因?这肯定有助于改进这一答案。