如何将数组作为参数从pug传递给JS?

时间:2018-07-10 07:42:42

标签: pug

我试图将数组c[x].topLevelIndustry作为参数传递给pug中的函数,我的pug代码是:

script.
  function myFunction(z) {
    var y = document.getElementById("demo");
    y.innerHTML =z.join();
  }


   myFunction(c[x].topLevelIndustry)
   p#demo

c是通过index.js传递的,我的JS代码是:

res.render('index', { title: 'About', c:c, d:d, e:e});

当我将['banana','apple']作为参数传递时,一切正常,因此我认为语法是错误的。

1 个答案:

答案 0 :(得分:0)

假设这是您要传递给客户端Javascript的服务器端变量:

const veryImportantObject = {foo: 'bar', number: 666};

您正在将其作为模板变量传递给Pug:

pug.renderFile(__dirname + '/Example.pug', {

    myPugTemplateVar: veryImportantObject,
});

在Pug模板中,可以使用!{}插值语法将其传递到未转义的客户端。为了避免获得像toString()之类的无用[Object object]输出,请使用JSON。

script(type="text/javascript").
    myPugTemplateVarInTheBrowser = !{JSON.stringify(myPugTemplateVar)};

这将输出带有以下内容的HTML模板:

<script type="text/javascript">
    myPugTemplateVarInTheBrowser = {foo: 'bar', number: 666};
</script>