在输入值中使用 EJS 无法正确显示
Using EJS into input value doesn't show properly
下面是我的 node.js 应用程序使用 EJS 模板的客户端代码的一部分。有一个输入框,如果用户没有登录,我想显示,在输入框中显示消息。而且,输入框也应该不能。
但是显示不正确,我如何显示包括 space 在内的整个语句,不仅是 'Need',还有 'Need to Login'?
<input type="text" <%= (isAuthenticated) ? '' : "value='Need to Login'" %> />
// view : 'Need
// It doesn't show after space
在 EJS 中 <%= foo %>
转义 HTML,而 <%- foo %>
不转义。
在您的情况下,<%= "value='Need to Login'" %>
将呈现 value='Need to Login'
,这不是您想要的。
将 <%=
替换为 <%-
即可。
但一般来说,在使用 <%-
时要慎重,尤其是在显示任意字符串或用户输入时,因为它可能使您容易受到 XSS.
的攻击
下面是我的 node.js 应用程序使用 EJS 模板的客户端代码的一部分。有一个输入框,如果用户没有登录,我想显示,在输入框中显示消息。而且,输入框也应该不能。
但是显示不正确,我如何显示包括 space 在内的整个语句,不仅是 'Need',还有 'Need to Login'?
<input type="text" <%= (isAuthenticated) ? '' : "value='Need to Login'" %> />
// view : 'Need
// It doesn't show after space
在 EJS 中 <%= foo %>
转义 HTML,而 <%- foo %>
不转义。
在您的情况下,<%= "value='Need to Login'" %>
将呈现 value='Need to Login'
,这不是您想要的。
将 <%=
替换为 <%-
即可。
但一般来说,在使用 <%-
时要慎重,尤其是在显示任意字符串或用户输入时,因为它可能使您容易受到 XSS.