【发布时间】:2021-12-30 04:41:33
【问题描述】:
我在我的烧瓶应用程序中遇到了一个非常特殊的问题,试图用 Js 脚本注入模板变量,我真的不明白问题出在哪里。
我特别想注入两个变量:一个数字列表和一个字符串列表(相同长度),这样我就可以在chart.js 绘图上绘制数据。
问题是,当注入单个变量(数字列表)时,页面呈现饼图没有错误,但是当我添加第二个变量(字符串列表)时,页面变为空白。
这里是 JS sn-p:
<div class='chart'>
<canvas id="myChart" width="400" height="400"></canvas>
<script type="text/javascript">
var data = {{values}};
var labels = {{labels}};
const ctx = document.getElementById('myChart').getContext('2d');
const myChart = new Chart(ctx, {
type: 'pie',
data: {
labels: ['Red', 'Blue', 'Yellow', 'Green', 'Purple', 'Orange'],
datasets: [{
labels: '# of Votes',
data: data,
backgroundColor: [
'rgba(255, 99, 132, 1)',
'rgba(54, 162, 235, 1)',
'rgba(255, 206, 86, 1)',
'rgba(75, 192, 192, 1)',
'rgba(153, 102, 255,1)',
'rgba(255, 159, 64, 1)'
],
borderColor: [
'rgba(255, 99, 132, 1)',
'rgba(54, 162, 235, 1)',
'rgba(255, 206, 86, 1)',
'rgba(75, 192, 192, 1)',
'rgba(153, 102, 255, 1)',
'rgba(255, 159, 64, 1)'
],
borderWidth: 1
}]
},
options: {
scales: {
y: {
beginAtZero: true
}
}
}
});
</script>
还有烧瓶:
@app.route('/test')
def test():
screener = Signals()
major_news = screener.major_news()
distribution = screener.industry_distribution(major_news)
return render_template('test.html', labels=[str(key) for key in distribution], values=[distribution[key] for key in distribution])
请记住,变量都已经过检查并且它们都包含它们应该包含的内容。
在 JS 脚本中,labels 变量什么都不做,但在声明后仍然会抛出错误。
感谢您的帮助。
【问题讨论】:
标签: javascript python flask chart.js