[英]pass an array from pug (jade) to jquery script
我有一个包含字符串列表的数组fields
:
var fields = ['foo', 'bar', 'zed'];
我把它从像这样的快递传递到哈巴狗:
app.get('/some_route', function(req, res) {
res.render('some_view', { fields: fields });
});
现在我想在jquery脚本中使用该数组,我已经尝试过了:
<script>
$( document ).ready(function() {
var fields = #{fields};
// return: var fields = foo,bar,zed;
});
</script>
和:
<script>
$( document ).ready(function() {
var fields = JSON.parse(#{fields});
// return: var fields = JSON.parse(foo,bar,zed);
});
</script>
谢谢
JSON编码将它放在某个属性中,就像在<script>
本身上一样:
script(id='field-source', data-fields=JSON.stringify(fields)).
$(document).ready(function () {
var fields = JSON.parse($('#field-source').data('fields'));
});
可以通过一些小心的转义¹直接将它放入脚本中(JSON编码是不够的!),但是当属性已经可靠地工作时,不值得努力。
¹您从JSON编码开始,然后通过将U + 2028和U + 2029替换为\\u202[89]
来使其对JavaScript上下文安全,然后通过替换<
with \\x3c
使其对HTML上下文安全。 仅替换</
是不够的,因为<!--
也可能以某些可以想象的方式解析。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.