2017-09-14 49 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