EJS是一个javascript模板库,用来从json数据中生成HTML字符串。
- 功能:缓存功能,能够缓存好的HTML模板;
- <% code %>用来执行javascript代码
- ejs模板文件后缀名 .ejs
<%- include(‘path/filename‘, { data: data }) %>
上面的代码将path目录下的filename.ejs文件引入到当前文件中,并将data的值传入filename.ejs文件中。
此处使用<%- %>
是为了避免二次转义。
也可以使用<% include path/filename %>
进行引入
var ejs = require(‘ejs‘), users = [‘geddy‘, ‘neil‘, ‘alex‘]; // 仅对当前模板有效的设置 ejs.render(‘<?= users.join(" | "); ?>‘, {users: users}, {delimiter: ‘?‘}); // => ‘geddy | neil | alex‘ // 全局有效的设置 ejs.delimiter = ‘$‘; ejs.render(‘<$= users.join(" | "); $>‘, {users: users}); // => ‘geddy | neil | alex‘ 。
ejs不支持像Jade那样的block布局,但是可以使用include的方式实现布局
<%- include(‘header‘) -%> <h1> Title </h1> <p> My page </p> <%- include(‘footer‘) -%>
<h1 style="<%= style %>"></h1>
<ul> <% for(var i in users){ %> <li><%= users[i].username %>--<%= users[i].age %></li> <% } %> </ul> <% if (names.length) { %> <ul> <% names.forEach(function(name){ %> <li foo=‘<%= name + "‘" %>‘><%= name %></li> <% }) %> </ul> <% } %>
<!-- 将所有条件判断代码放<% %>里面即可 --> <% if(isLogin){ %> <div class="user"> <a href="">Jack</a> <a href="">退出</a> </div> <% }else{ %> <div class="login"> <a href="">登录</a> <a href="">注册</a> </div> <% } %>
原文:https://www.cnblogs.com/adoctors/p/9215996.html