下面是我的 node.js 应用程序使用 EJS 模板的客户端代码的一部分。有一个输入框,我想显示如果用户没有登录,则在输入框中显示消息。另外,输入框也应该不能。
但是它没有正确显示,如何显示整个语句,包括空格,不仅是“需要”,而且是“需要登录”?
<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 的攻击。 .
关于javascript - 使用 EJS 输入值无法正确显示,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35521090/