Tyl*_*ans 3 templates node.js express pug
我有一个用于标题的玉模板文件并使用bootstrap标记.根据用户所在的页面,导航栏需要将class .active添加到该导航项.避免这样的长代码的最佳方法是什么?
header.jade
if nav=='home'
li.active
a(href="/") Home
else
li
a(href='/') Home
if nav=='about'
li.active
a(href='/about') About
else
li
a(href='/about') About
Run Code Online (Sandbox Code Playgroud)
路线
router.get('/about', function(req, res) {
res.render('about', { nav:'about' });
});
Run Code Online (Sandbox Code Playgroud)
请注意如果标题中有更多链接,它会变得更长.有没有更好的方法将类"活动"添加到正在查看的页面?
谢谢泰勒
您可以创建一个处理列表项呈现的mixin.这样您的逻辑代码就不必重复:
mixin header-item(name, url)
if name.toLowerCase() == nav
li.active
a(href=url)= name
else
li
a(href=url)= name
+header-item('Home', '/')
+header-item('About', '/about')
Run Code Online (Sandbox Code Playgroud)