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

Javascript 如何在脚本块中使用jade/pug条件?,javascript,node.js,pug,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

我正在努力让它工作。我实际上在使用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, 
],
我得到的输出看起来像

block lower-scripts
script.
    var data = {
        labels : [
            each visit in visitstats
                #{visit.date}, 
        ],
<script>var data = {
labels : [
    each visit in visitstats
        04/17/2016, 
],
var数据={
标签:[
访问状态中的每次访问
04/17/2016, 
],
我认为这是不对的。它是否应该将每条语句打印到html输出中

我试着回答了几个问题,但都没法解决。 它看起来不像each语句运行。尝试使用-使其运行。尝试js前面的管道使其成为异常。什么都没有。
有人能告诉我哪里出了问题吗?

把一个隐藏的输入标签放在你的身体里,比如jade

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 };

可以使用内联插值:

script.
  var visitstats = #[JSON.stringify(visitstats)];
  ... 

我通常将数组或对象放入一个隐藏的输入标记中,然后在前端js中需要时,我得到这个输入标记的值并对其进行解析。聪明。你有没有一个例子可以清理并作为答案?我还认为应该可以在文档准备就绪时将其ajax放到页面中。但我的ajax排印不符合我的要求现在就是这样。为什么要使用一个不需要的额外ajax请求。等等,我会把我的方法作为答案。mike,谢谢你的全面回复。这正是我需要的。除了我无法让它工作之外。JSON.stringify(visitstats)从来没有吐出任何东西。我需要做什么才能使它作为js运行,因为它在html块中?比如预处理-标记?感谢更新。我确实让原来的行工作了,这很好。不确定为什么它不会。我还必须在第六行添加.value,以便JSON.parse函数能够真正到达coHtmleElement包含的对象的内容。我真正喜欢你的答案的地方是可伸缩性。我只需要再添加两行,就可以排列结果的其他内容,这太棒了。回答得好,谢谢你抽出时间来帮助我。谢谢@bytejunkie:)。如果对你有用,请标记为答案。@bytejunkie不,y你已经做了标记。我刚刚提交了评论。谢谢:)