跳到主要内容
CNode

EJS 模板<%- 变量%> 与<%= 变量%>的区别

社区
Jj4cnodejs发布于 14 年前最后回复 12 年前
9465630

在 EJS (Embedded JavaScript) 模板系统中, 字符串输出时默认是经过escape转义编码的.

// 用=号输出,就会被escapge转义编码 
<%= VARIABLE_NAME %>

这种默认转义编码可能会带来麻烦, 比如我要输出一个 json 对象供客户端 javascirpt 使用, 或者想输出一些动态生成的 HTML 标签, 幸运的是EJS提供另一种输出方式:

// 用“-”输出原始内容, 不会被escape,
<%- VARIABLE_NAME %>
查看回复

回复 (9)

F
flybears#912 年前

<%- VARIABLE_NAME %>这个变量里面如果含有标签的话,页面就会挂掉....这个咋解决

B
backsapce#812 年前

说起这个问题,我用Jade的时候也遇到过,如果是输出html内容(比如markdown转换过来的),用 = var 模式输出会被转义,所有内容都会被一对<>包裹,用!= var 这种关闭转义能够正常输出

Y
yaochun#712 年前

javascirpt 这个错别字,好吧,我敏感了

A
alsotang#613 年前

underscore 的模块里, - 和 = 的作用刚好反过来。

P
petersun#513 年前

赞一个

J
joecora#413 年前

###早看到这点,我就不会多浪费很多时间了,妈呀

A
a272121742#314 年前

F
fengmk2#214 年前
引用 j4cnodejs咦? code 格式无效了?

markdown 格式不对。。

J
j4cnodejs#114 年前

咦? code 格式无效了?

参与回复

登录后即可参与回复。登录