block lower-scripts
script.
var data = {
labels : [
each visit in visitstats
#{visit.date},
],
输出我看起来像
<script>var data = {
labels : [
each visit in visitstats
04/17/2016,
],
我不认为这是对的。它应该将每个语句打印到html输出中吗?
我已经尝试过几个问题,但无法让这个工作。 它看起来并不像每个语句都运行。尝试使用 - 让它运行。尝试在js前面的管道使其成为例外。没有。 任何人都可以告诉我哪里出错了?
答案 0 :(得分:3)
在你的身体中放入一个隐藏的输入标签,例如
body
input(type="hidden", id="visit-stats-json", value= JSON.stringify(visitstats) )
script.
var visitStatsValue = document.getElementById("visit-stats-json");
var visitStatsJSON = JSON.parse( visitStatsValue );
var labelsArray = [];
for( var i = 0; i < visitStatsJSON.length; i++ )
{
var visit = visitStatsJSON[i];
labelsArray.push( visit.date );
}//for
var data = { labels: labelsArray };
现在您的数据变量应该具有您想要的值。
编辑:
我使用完全相同的语法,它的工作原理。请注意value=
后有空格。如果它仍然无法正常工作,您也可以尝试按照以下方式获得相同的结果:
-var visitStatsString = JSON.stringify(visitstats);
input(type="hidden", id="visit-stats-json", value= visitStatsString )
答案 1 :(得分:0)
可以使用内联插值:
script.
var visitstats = #[JSON.stringify(visitstats)];
...