Я бы хотел отобразить «текущий» класс на каждой из моих навигационных ссылок в зависимости от того, на какой странице я включен в моем шаблоне layout.ejs.Node.js, Express, EJS - активный класс на текущей странице в навигации
В настоящее время мой экспресс индекс контроллер выглядит следующим образом:
// About
exports.about = function(req, res) {
res.render('content/about.ejs', {
title: 'About'
});
};
И в моих layout.ejs у меня есть следующие, которые я хотел бы быть вынесено динамически.
<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>
Любые идеи о том, как этого достичь?
спасибо. Это действительно правильно, включая синтаксис. Очень признателен. У меня пока нет полномочий голоса, поэтому я просто согласен с ответом. – dinkco
Любой способ получить 'page_name' автоматически из ввода' app.get() '? – jeff
'req.path', вероятно, самая близкая вещь. См. [Здесь] (https://expressjs.com/ru/api.html#req.path) для документов. Вы можете легко вырезать косые черты с пути, чтобы получить что-то близкое к page_name. Но имена вложенных путей (например, '/ about/fred') не будут работать совершенно правильно. Вероятно, вы могли бы изменить слэши на символы подчеркивания, чтобы создать соглашение, в котором подчеркнутая версия req.path (например, 'req.path.replace (/ \ // g, '_')') представляет имя страницы – thataustin