关于ejs模板引擎的问题
发布于 12 年前 作者 384324085 8898 次浏览 最后一次编辑是 8 年前

关于写页面,由于需求,需要动态显示页面,我看了书的ejs模板的写法,有点类似jsp和.net的写法,直接嵌在html中,编译后能解析。但我根据书上所写的,运行则显示页面有错,就是在那些<% if %>的地方,不解,是我少写了什么么?

13 回复

应该是少写了花括号:

<% if (1 + 1 === 2) { %>
  对的
<% } %>

先谢谢你,如果if条件里的一个值是后台传来的,比如说,test!=‘hello’,这个test值是后台传来的,我要在用它来进行判断动态生成页面,该如何写了?

@384324085 需要手动把数据传递给render函数,才能在模版中访问

res.render('page',{test:'hello'});

@hylin 先谢谢你,传递给render函数,这个我知道,在页面是通过<%= title %>进行访问的,但是如果你这么写<% if(<%= title%>!=null ) {%>的话,是报错的,那正确的访问方式有哪些

@hylin 上面的title写错,是test

@384324085 直接test 不需要<%= test %>

@jaysky 非常感谢

我用res.render(‘chat.ejs’,{name:name});传数据,在ejs文件中怎么接收到的数据是null。

不需要加后缀 res.render(‘chat’,{name:name}); 这样看看

@hexie 在js文件中用res.render(‘chat’,{name:name}); 传值到chat.ejs文件中,在chat.ejs文件中这条语句<title><%= name %></title>可以显示。但是想用var username = name;获得name的值,却是null。若用var username = <%= name %>,当name是数字是能获得,但当name是字符串是还是不能获得。不理解什么原理。

@danfengchaoxi 我没试过,我的想法是,既然传到页面,你可以用js抓。

回到顶部