ejs模板使用

这里重点要理解下 %= 和 %- 的区别

= 是值计算 会获取变量的计算的值 
-  是值替换  不会有任何改动原封不动的输出

用<%= %>,里面的变量一定是普通的数据格式内容,可以是字符串,可以是数组,可以对象。。

<%- %>里面的变量一定是字符串而且还是标签字符串,

如果不是变量而是一段HTML文件,那么就要考虑被转义的情况,要用<%- %>

  • 使用<%- %> 会在处理其他数据结构带来问题,比如对象,数组等等
  • 被转义的内容参与计算是可以反转义的,但是想直接签到html里显示,就不行了。

在js中使用通常是 var a = <%= code %> 取计算属性。


ejs模板文件中可以嵌入代码,但代码一定是写在<% %>中。下面归纳一些使用技巧。

使用某个变量的值要用<%= %>

<title><%= title %></title>

变量可以再计算

<title><%= title + ' page' %></title>

执行某段代码用<% %>

<% for(var i = 0; i < postsList.length; i++) { %>
<p><%= postsList[i] %></p>
<% } %>

总之,只需要在正常的代码前后加上<% 和 %>即可,如果是赋值语句还要加上=号。


其他参考资料

  1. 直接在<%%>中写表达式或变量。这种情况通常只是用来进行表达式计算或给变量赋值,不会有任何输出,被称作无缓冲的代码。

<% code %>

  1. 在<%%>中通过=号输出变量或表达式的值。默认输出到页面中的内容会进行HTML转义。如<div>Hello</div>输出后会变成<div>Hello</div>

<%= code %>

  1. 在<%%>中通过-号输出变量或表达式的值。内容不经任何转义直接输出到页面上。

<%- code %>

  1. 在结束标记%>之前添加-号,这样输出的内容会自动带有HTML标记的缩进。如:

<% code -%> 或 <% -%> 或 <%= code -%> 或 <%- code -%>

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 134,993评论 19 139
  • 1. Java基础部分 基础部分的顺序:基本语法,类相关的语法,内部类的语法,继承相关的语法,异常的语法,线程的语...
    子非鱼_t_阅读 31,779评论 18 399
  • 《裕语言》速成开发手册3.0 官方用户交流:iApp开发交流(1) 239547050iApp开发交流(2) 10...
    叶染柒丶阅读 27,899评论 5 19
  • 一曲长歌愁未开,等闲又是秋风来。谁家尚有五花马,我辈终非八斗才。难以产生新感觉,无从消遣旧情怀。平生万事空回首,半...
    硁硁阅读 286评论 0 1
  • 少年最好的地方就是:虽然嘴上说要放弃,心底却总是憋着一口气。--刘同 01. 日本动画大师今敏的作品《千年女优》中...
    榕蔚rw阅读 316评论 0 0