2017-09-14 1 views
1

Ich benutze express.js + ejs, ich habe zwei Fälle:ejs, wie dynamische Attribute von HTML-Tag hinzufügen?

1.

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

Aber es gibt mir eine Fehlermeldung: Could not find matching close tag for "<%="./nundefined/nError: Could not find matching close tag for "<%=".

I

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

erhalten möchten

2 .

oben

wie, aber dynamische Add href Attribut HTML-Tag <a>

ich diese erhalten möchten:

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

Wie kann ich diese beiden Probleme zu lösen?

Antwort

1

Für die erste haben Sie gerade diese:

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

Sie können nicht verschachtelt <%=, versuchen Sie stattdessen:

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

Für die zweite man es fast genau würde das gleiche aber Sie würden den Zustand um mehr von dem Ausgang bewegen:

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

Here Iverwendet habenanstelle von <%=, um sicherzustellen, dass " nicht HTML-codiert wird.

Es könnte klarer die ?: insgesamt zu Graben:

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

Es gibt einige Überschneidungen, aber es ist viel einfacher zu lesen.

+0

thx. Ja, der zweite, es ist schwer zu lesen .. – novaline

Verwandte Themen