0
從帕格轉換到帕格我不知道如何在帕格填充下拉列表。在車把上,我可以做如何在帕格填充下拉列表
<script type='text/javascript'>
$('.ui.dropdown').dropdown('set selected', [{{#each trip.tags}}'{{this}}',{{/each}}]);
</script>
任何人都知道帕格最好的做法是什麼?
從帕格轉換到帕格我不知道如何在帕格填充下拉列表。在車把上,我可以做如何在帕格填充下拉列表
<script type='text/javascript'>
$('.ui.dropdown').dropdown('set selected', [{{#each trip.tags}}'{{this}}',{{/each}}]);
</script>
任何人都知道帕格最好的做法是什麼?
看起來您正在嘗試將JavaScript值生成爲模板呈現的一部分。如果this
沒有正確轉義(或者它可能只是導致值"
顯示爲"
),則您在降價中採取的方法可能會導致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
在呈現前正確地轉義值。
聽起來不錯,謝謝。實際上,在加載了semantic-ui之後,我使用requirejs設置了AMD模塊內的下拉列表,因此無法直接訪問該變量。填寫隱藏字段中的值然後從那裏讀取它是否安全?或者你會在這種情況下推薦什麼? – Flaudre
我可能會在requirejs模塊中做一個ajax調用,我猜...如果有一個更簡單的方法,那麼我很想知道。謝謝! – Flaudre
發出AJAX請求應該沒問題。把它放在隱藏的輸入中也是可以的(只要它被正確地轉義)。 – ForbesLindesay