EJS 模板<%- 变量%> 与<%= 变量%>的区别
在 EJS (Embedded JavaScript) 模板系统中, 字符串输出时默认是经过escape转义编码的.
// 用=号输出,就会被escapge转义编码
<%= VARIABLE_NAME %>
这种默认转义编码可能会带来麻烦, 比如我要输出一个 json 对象供客户端 javascirpt 使用, 或者想输出一些动态生成的 HTML 标签, 幸运的是EJS提供另一种输出方式:
// 用“-”输出原始内容, 不会被escape,
<%- VARIABLE_NAME %>
9 回复
咦? code 格式无效了?
markdown 格式不对。。
嗯
###早看到这点,我就不会多浪费很多时间了,妈呀
<h1>赞一个</h1>
underscore 的模块里, - 和 = 的作用刚好反过来。
javascirpt 这个错别字,好吧,我敏感了
说起这个问题,我用Jade的时候也遇到过,如果是输出html内容(比如markdown转换过来的),用 = var 模式输出会被转义,所有内容都会被一对<>包裹,用!= var 这种关闭转义能够正常输出
<%- VARIABLE_NAME %>这个变量里面如果含有<script></script>标签的话,页面就会挂掉…这个咋解决