2016-12-07 20 views
0

從帕格轉換到帕格我不知道如何在帕格填充下拉列表。在車把上,我可以做如何在帕格填充下拉列表

<script type='text/javascript'> 
    $('.ui.dropdown').dropdown('set selected', [{{#each trip.tags}}'{{this}}',{{/each}}]); 
</script> 

任何人都知道帕格最好的做法是什麼?

回答

1

看起來您正在嘗試將JavaScript值生成爲模板呈現的一部分。如果this沒有正確轉義(或者它可能只是導致值"顯示爲&quot;),則您在降價中採取的方法可能會導致XSS攻擊。

在pug中,我們建議在需要將模板值嵌入到腳本中時使用js-stringify。爲此,您需要使用npm安裝js-stringify。然後你需要把它包含在你的本地人中。例如

pug.renderFile('my-template.pug', {stringify: require('js-stringify')}); 

然後你可以使用它作爲:

script(type='text/javascript'). 
    $('.ui.dropdown').dropdown('set selected', !{stringify(trip.tags)}); 

注:使用!{...}語法只是安全的,因爲js-stringify在呈現前正確地轉義值。

+0

聽起來不錯,謝謝。實際上,在加載了semantic-ui之後,我使用requirejs設置了AMD模塊內的下拉列表,因此無法直接訪問該變量。填寫隱藏字段中的值然後從那裏讀取它是否安全?或者你會在這種情況下推薦什麼? – Flaudre

+0

我可能會在requirejs模塊中做一個ajax調用,我猜...如果有一個更簡單的方法,那麼我很想知道。謝謝! – Flaudre

+0

發出AJAX請求應該沒問題。把它放在隱藏的輸入中也是可以的(只要它被正確地轉義)。 – ForbesLindesay