我用的是ejs-locals 模板引擎 我想知道我怎么做才可以实现 比如:跳到登陆页面可以让nav栏的登陆按钮成选中状态啊 或者说我想获得req.url怎么获取呢 谢谢各位
注:因为导航栏是 layout里面的 公用的 我想根据不同的url 实现菜单的选中状态
用JS,获取当前页面URL地址,然后去更新nav的按钮状态。。
@ijse 谢谢回复 其实用js不是一个很好的体验 这样的逻辑还是放到后端处理合理, 我想到解决方案了 就是render的时候 把req 和 res 对象传给view模板 不过不知道这样好不好 因为像jsp php 等都有全局对象可以获得的 可是nodejs没有…?
可以写一个中间件来实现 ,供你参考: 模版: < li class="<%=activeNav(’/about’)%>">< a href="/about" title="<%=(‘site.about’)%>">< i class=“icon-user icon-white”></i> <%=(‘site.about’)%></a>< /li> 后台中间件: /**
哈哈 谢谢 刚刚学习 对中间件不熟 不知道放到哪里 以后用的时候回来重温一下
谢谢 能解释一下 第二个 www跳转到根域名 有什么作用吗?
@luxueyan2008 呃 删除第二个吧 我copy的我网站的代码 强制将 www.site.com跳转到site.com进行访问 在app.js中使用中间件,假设在common模块中:
app.use(common.sundry);
common.js:
exports.sundry = function(req,res,next){ //1.根据请求url选中顶部,侧边菜单 res.locals.activeNav = function (nav){ var result = ''; if(nav == '/'){ if(req.path == '/'){ result = 'active'; } }else{ if(req.path.indexOf(nav) == 0){ result = 'active'; } } return result; }; next(); };
@hylin 谢谢 明白了
CNode 社区为国内最专业的 Node.js 开源技术社区,致力于 Node.js 的技术研究。
注:因为导航栏是 layout里面的 公用的 我想根据不同的url 实现菜单的选中状态
用JS,获取当前页面URL地址,然后去更新nav的按钮状态。。
@ijse 谢谢回复 其实用js不是一个很好的体验 这样的逻辑还是放到后端处理合理, 我想到解决方案了 就是render的时候 把req 和 res 对象传给view模板 不过不知道这样好不好 因为像jsp php 等都有全局对象可以获得的 可是nodejs没有…?
可以写一个中间件来实现 ,供你参考: 模版: < li class="<%=activeNav(’/about’)%>">< a href="/about" title="<%=(‘site.about’)%>">< i class=“icon-user icon-white”></i> <%=(‘site.about’)%></a>< /li> 后台中间件: /**
哈哈 谢谢 刚刚学习 对中间件不熟 不知道放到哪里 以后用的时候回来重温一下
谢谢 能解释一下 第二个 www跳转到根域名 有什么作用吗?
@luxueyan2008 呃 删除第二个吧 我copy的我网站的代码 强制将 www.site.com跳转到site.com进行访问 在app.js中使用中间件,假设在common模块中:
common.js:
@hylin 谢谢 明白了