2017-09-14 593 views
1

我用express.js + ejs,我有两种情况:ejs,如何添加html标签的动态属性?

1.

<a href="<%= prevDisabledClass ? '' : ?page=<%=+page - 1%>%>">prev</a>

但它给我一个错误:Could not find matching close tag for "<%="./nundefined/nError: Could not find matching close tag for "<%=".

我想

prevDisabledClass ? <a href=''>prev</a> : <a href='?page=<%=+page - 1%>'>prev</a>

2 。

像上面的,而是动态的附加href属性HTML标记<a>

我想要得到这样的:

prevDisabledClass ? <a>prev</a> : <a href='?page=<%=+page - 1%>'>prev</a>

我该如何解决这两个问题呢?

回答

1

对于第一个,你现在有这样的:

<a href="<%= prevDisabledClass ? '' : ?page=<%=+page - 1%>%>">prev</a> 

您不能嵌套<%=,试试这个来代替:

<a href="<%= prevDisabledClass ? '' : ('?page=' + (page - 1)) %>">prev</a> 

对于第二个它会是同出一辙但你移动状态各地更多的输出:

<a<%- prevDisabledClass ? '' : (' href="?page=' + (page - 1) + '"') %>>prev</a> 

在这里,我用<%-而不是<%=以确保"未获得HTML编码。

这可能是更清晰的沟?:干脆:

<% if (prevDisabledClass) { %> 
    <a>prev</a> 
<% } else { %> 
    <a href="?page=<%= page - 1 %>">prev</a> 
<% } %> 

有一些重叠,但它更容易阅读。

+0

thx。是的,第二个,很难读。 – novaline