Ich möchte eine 'aktuelle' Klasse auf jedem meiner Navigationslinks rendern abhängig davon, auf welcher Seite ich in meiner layout.ejs Vorlage bin.Node.js, Express, EJS - Aktive Klasse auf der aktuellen Seite in der Navigation
Derzeit meine ausdrückliche Controller Index sieht wie folgt aus:
// About
exports.about = function(req, res) {
res.render('content/about.ejs', {
title: 'About'
});
};
Und in meinem layout.ejs habe ich die folgenden, die ich dynamisch gemacht werden möchte.
<ul class="nav" id="nav">
<li><a href="/">Home</a></li>
<li class="current"><a href="/about">About</a></li>
<li><a href="/">Contact</a></li>
</ul>
Irgendwelche Ideen, wie man das erreicht?
Vielen Dank. Es ist in der Tat richtig, einschließlich der Syntax. Sehr geschätzt. Ich habe noch kein Wahlrecht, also akzeptiere ich die Antwort. – dinkco
Gibt es eine Möglichkeit, 'page_name' automatisch von' app.get() ''zu erhalten? – jeff
'req.path' ist wahrscheinlich am nächsten. Siehe [here] (https://expressjs.com/en/api.html#req.path) für Dokumente. Sie können die Schrägstriche leicht aus dem Pfad entfernen, um etwas mit dem Seitenname zu erhalten. Aber geschachtelte Pfadnamen (zB '/ about/fred') würden dann nicht ganz richtig funktionieren. Sie könnten wahrscheinlich die Schrägstriche in Unterstriche ändern, um eine Konvention zu erstellen, bei der die unterstrichene Version von req.path (zB 'req.path.replace (/ \ // g, '_')') einen Seitennamen darstellt – thataustin