在JADE模板引擎上解析数组

时间:2016-06-20 01:08:44

标签: javascript json node.js express pug

我在ExpressJS上使用JADE模板引擎。

将此数组发送到JADE模板

var data = {
    "labels" : ["Label 1", "Label 2"]
};
res.render('index', {data: data});

我的JADE文件看起来像这样:

script(type='text/javascript').
  var options = {
  labels: [#{data.labels}],
  ...
  };

如您所见,我试图将data.labels值设为内联<script>块JADE文件。但输出是这样的:

<script type="...">
var options = {
      labels: [Label 1, Label 2], <-- invalid syntax
      ...
      };

必须是这样的:

<script type="...">
var options = {
      labels: ["Label 1", "Label 2"], <-- valid syntax
      ...
      };

如何直接在JADE文件中使用数组?

1 个答案:

答案 0 :(得分:3)

JSON使事情正确:

&#13;
&#13;
// magic of JSON.stringify:
var src = "script var labels = !{JSON.stringify(labels)}";

// let's try and render it:
var data = {
    "labels" : ["Label 1", "Label 2"]
};
var fn = jade.compile(src);

var html = fn(data);

console.log(html);
// output: <script>var labels = ["Label 1","Label 2"]</script>
&#13;
<script src="https://cdnjs.cloudflare.com/ajax/libs/jade/1.11.0/jade.min.js"></script>
&#13;
&#13;
&#13;