虽然是坟,我来发表一下我的看法。我用的是node的express,在后台的router里面会有一段向客户端发送数据的代码。其中我们看到发送了一个title和result的数据。
res.render('AccountManager',{title: 'Express',
result:result
})
而在客户端的ejs里面会有一段ejs的代码,其中有ejs需要获取数据的变量。这个result就是从服务器response请求的数据。客户端每发送一次get请求都有request和response。
<tbody><% for(var i=0 i<result.lengthi++){%>
<tr>
<th><%= i+1 %></th>
<td><%= result[i].username %></td>
<td><%= result[i].password %></td>
<td><%= result[i].lastName + result[i].firstName %></td>
<td><%= result[i].company %></td>
<td><%= result[i].telephone %></td>
<td><%= result[i].email %></td>
<td><%= result[i].authority %></td>
</tr>
<%}%>
</tbody>
不要谢我,我是雷锋。。不过我在寻找如何改变了result,从而动态改变页面中的数据。。有哪位雷锋知道吗?
在用ejs模板进行渲染时遇到这样一个问题,nodejs端返回一个数组,在模板渲染出来的结果不是想要的数据,如下:
模板里是这样的
hotBrands 应该是一个对象数组,结果打印出来的结果是下图这样的,用 encodeURIComponent 转换后结果也还是一样
浏览器自动转换了,于是我想着把 hotBrands 转化成 json 字符串,如下:
结果如下
还是不能正常显示
最后我试着两着结合
结果如下:
终于正常显示了,好坑。
所以在用模板渲染时要注意一些特殊数据类型或符号可能会被浏览器转换,如果遇到了需要特殊处理一下。