CNode

关于ejs模板引擎的问题

3384324085发布于13 年前最后回复13 年前13 回复9442 浏览0 收藏

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

查看回复

回复 (13)

D
danfengchaoxi#1·13 年前

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

H
hexie#2·13 年前
D
danfengchaoxi#4·13 年前
引用 danfengchaoxi我用res.render('chat.ejs',{name:name});传数据,在ejs文件中怎么接收到的数据是null。

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

L
leizongmin#5·13 年前

应该是少写了花括号:

<% if (1 + 1 === 2) { %>
  对的
<% } %>
3
384324085#6·13 年前
引用 leizongmin应该是少写了花括号:

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

H
hylin#7·13 年前
引用 leizongmin应该是少写了花括号:

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

res.render('page',{test:'hello'});
3
384324085#8·13 年前
引用 leizongmin应该是少写了花括号:

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

3
384324085#9·13 年前
引用 leizongmin应该是少写了花括号:

@hylin 上面的title写错,是test

J
jaysky#10·13 年前
引用 leizongmin应该是少写了花括号:

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

3
384324085#11·13 年前
3
384324085#12·13 年前
引用 danfengchaoxi我用res.render('chat.ejs',{name:name});传数据,在ejs文件中怎么接收到的数据是null。

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

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