将EJS用于输入值无法正确显示

时间:2016-02-20 08:57:53

标签: javascript node.js ejs

以下是我的node.js应用程序使用EJS模板的客户端代码的一部分。有一个输入框,我想显示用户是否未登录,将消息显示在输入框中。而且,输入框也应该不能。

但它没有正确显示,我怎样才能显示包括空间在内的整个声明,而不仅仅是'需要'而是'需要登录'?

<input type="text" <%= (isAuthenticated) ? '' : "value='Need to Login'" %> />

// view : 'Need
// It doesn't show after space

1 个答案:

答案 0 :(得分:2)

在EJS <%= foo %>中转义HTML,而<%- foo %>则不转义。

在您的情况下,<%= "value='Need to Login'" %>将呈现value=&#39;Need to Login&#39;,这不是您想要的。

<%=替换<%-可以解决问题。

一般情况下,使用<%-时请务必小心,特别是在显示任意字符串或用户输入时,因为它可能会使您容易受到XSS的攻击。<​​/ p>