簡體   English   中英

將一個數組從帕格(jade)傳遞給jquery腳本

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM