以下是我的node.js应用程序使用EJS模板的客户端代码的一部分。有一个输入框,我想显示用户是否未登录,将消息显示在输入框中。而且,输入框也应该不能。
但它没有正确显示,我怎样才能显示包括空间在内的整个声明,而不仅仅是'需要'而是'需要登录'?
<input type="text" <%= (isAuthenticated) ? '' : "value='Need to Login'" %> />
// view : 'Need
// It doesn't show after space
答案 0 :(得分:2)
在EJS <%= foo %>
中转义HTML,而<%- foo %>
则不转义。
在您的情况下,<%= "value='Need to Login'" %>
将呈现value='Need to Login'
,这不是您想要的。
用<%=
替换<%-
可以解决问题。
一般情况下,使用<%-
时请务必小心,特别是在显示任意字符串或用户输入时,因为它可能会使您容易受到XSS的攻击。</ p>