Javascript 将模板变量填充到内联函数
我正在尝试使用Javascript 将模板变量填充到内联函数,javascript,node.js,pug,jscharts,Javascript,Node.js,Pug,Jscharts,我正在尝试使用JSCharts block content | <div id="chartcontainer">This is just a replacement in case Javascript is not available or used for SEO purposes</div> script. var myData=new Array() var myData = new Array([10, 20], [15, 10], [20,
JSCharts
block content
| <div id="chartcontainer">This is just a replacement in case Javascript is not available or used for SEO purposes</div>
script.
var myData=new Array()
var myData = new Array([10, 20], [15, 10], [20, 30], [25, 10], [30, 5]);
var myChart = new JSChart('chartcontainer', 'line');
myChart.setDataArray(myData);
myChart.draw();
块内容
|这只是在Javascript不可用或不用于SEO目的的情况下的替换
剧本
var myData=新数组()
var myData=新数组([10,20]、[15,10]、[20,30]、[25,10]、[30,5]);
var myChart=newjschart('chartcontainer','line');
myChart.setDataArray(myData);
myChart.draw();
我在nodejs中动态创建了一个数组
[[10,20],[15,10],[20,30],[25,10],[30,5]。
然后递给杰德
res.render('chart',{newArray:array})代码>
但是,我无法在上面提到的内联函数中使用它
我尝试使用var myData=“#{newArray}”
,但它只给出一个字符串,如10,20,15,10,20,30…
,无法使用
我还尝试发送Json对象。但是在“#{myJson}”
和/或stringify
我能做什么?另外,有什么方法可以在脚本之外使用此脚本。
块?因为当我尝试时,它无法找到JSChart()。如果这是可能的,那么我可以迭代json并做一些事情。现在我正在使用这个解决方案:
block content
| <div id="chartcontainer">This is just a replacement in case Javascript is not available or used for SEO purposes</div>
-var myJson=JSON.stringify(json);
script.
var array = new Array();
var myData=JSON.parse(("#{myJson}").replace(/"/g,'"'));
myData.forEach(function(data)
{
array.push([data.x,data.y]);
})
var myChart = new JSChart('chartcontainer', 'line');
myChart.setDataArray(array);
myChart.draw();
块内容
|这只是在Javascript不可用或不用于SEO目的的情况下的替换
-var myJson=JSON.stringify(JSON);
剧本
var数组=新数组();
var myData=JSON.parse((“{myJson}”).replace(/“/g,”);
forEach(函数(数据)
{
push([data.x,data.y]);
})
var myChart=newjschart('chartcontainer','line');
setDataArray(数组);
myChart.draw();
但这似乎真的很愚蠢,而且是不必要的处理;在节点中创建json,然后将其发送到jade,将json转换为字符串,再次转换为json,然后再转换为数组。您可以在脚本标记中的jade中使用
只需使用!{}
标记
var array = new Array(!{newArray})
应该可以正常工作不,它仍然会给出长度为1的数组[10,20,15,10,20,30…]
即使我正在发送:[10,20],[15,10],[20,30]
然后在服务器端代码中,将字符串作为JSON{newArray:JSON.stringify(array)}
发送到客户端,array=!{JSON.parse(newArray)}
应该可以做到这一点