目前这是我所拥有的:
这是我的发布方法
app.post('/barchartentry', function(req, res){
res.render('barchart', { title: 'EZgraph: Bar Chart', barValues: req.body.myInputs, labelValues: req.body.myLabel});
});
这是我对 Jade 的看法:
extends layout
block appendHeader
link(rel='stylesheet', href='stylesheets/barchart.css')
block content
include navbar
canvas(id='canvas' width="800" height="600")
include copyright
block appendScripts
script(src='js/barchart.js')
这是该 View 中的 JS 文件,我需要访问我在该文件中发送的数据
$(document).ready(function() {
var values = barValues;
var labels = labelValues;
console.dir(barValues);
var canvas = document.getElementById("canvas").getContext("2d");
canvas.fillStyle="#BFBFBF";
canvas.fillRect(0,0,800,600);
canvas.fillStyle="#000000";
canvas.beginPath();
canvas.moveTo(40, 40);
canvas.lineTo(40, 560);
canvas.lineTo(760, 560);
canvas.stroke();
});
使用输入数据,我将绘制带有给定数字/标签的条形图。目前,即使将其提供给页面后,我也无法访问该数据。我不确定我是否应该用它做其他事情以使其可供该脚本使用?
最佳答案
我依稀记得尝试将值替换为 Jade 脚本时遇到问题。另外动态生成javascript感觉有点臭。因此,我将数据绑定(bind)到 DOM 并以编程方式访问它:
block content
include navbar
canvas(
id='canvas',
width="800",
height="600",
data-barValues=JSON.stringify(locals.barValues),
data-labelValues=JSON.stringify(locals.labelValues)
)
include copyright
然后在js中:
$(document).ready(function() {
var values = $('#canvas').attr('data-barValues').val();
values = JSON.parse(values);
var labels = $('#canvas').attr('data-labelValues').val();
labels = JSON.parse(labels);
...
});
关于javascript - 在express/node中使用发布的表单数据时遇到问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21315725/