如何填充哈巴狗的下拉菜单

How to populate a dropdown in pug

从 handlebars 切换到 pug 我不知道如何在 pug 中填充下拉菜单。在车把上我可以做到

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

有人知道哈巴狗的最佳做法是什么吗?

您似乎在尝试生成 JavaScript 值作为模板呈现的一部分。如果 this 没有正确转义,您在降价中采用的方法可能会导致 XSS 攻击(或者它可能只会导致像 " 这样的值显示为 &quot;)。

在 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)});

N.B。使用 !{...} 语法是唯一安全的,因为 js-stringify 在渲染之前正确地转义了值。