如何在脚本块中使用jade / pug条件?

时间:2016-04-28 15:46:21

标签: javascript node.js pug

我正在努力让这项工作得以实现。我实际上使用Chart.js并尝试使用数据数组填充我的图形。 所以我的代码看起来像

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前面的管道使其成为例外。没有。 任何人都可以告诉我哪里出错了?

2 个答案:

答案 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)];
  ...