我很难让“活动”类停留在不同的页面上。我通过布局在每个页面上加载了导航栏,这可能是问题吗?
问问题
2684 次
2 回答
16
我只是在我的布局 gsp 中有这个来创建导航栏,它工作得很好。我只有控制器级别的导航栏中的项目,而不是单个操作。
<li ${controllerName.equals('schedule') ? 'class="active"' : ''}>Schedule</li>
对于 Grails 生成的默认控制器,可以使用
<li ${controllerName == null ? 'class="active"' : ''}>Home</li>
于 2012-10-04T12:12:33.463 回答
2
是的,这就是问题所在。
每当您重新加载页面时,任何<li>
元素都class=active
将再次设置为活动状态。
如果您有/grails-app/views/layouts/main.gsp
以下情况:
<div class="navbar">
<div class="navbar-inner">
<ul class="nav">
<li class="active"><a href="/home">Home</a></li>
<li><a href="/fred">Fred</a></li>
<li><a href="/barney">Barney</a></li>
</ul>
</div>
</div>
并且您的 Fred 和 Barney 的 GSP 使用 main.gsp 布局,当您单击它们时,您将加载上面的代码,并且“主页”的链接仍将处于活动状态。
解决方案是为 Navbar 控件编写 Taglib,或创建单独的布局页面。
于 2012-09-18T20:29:53.600 回答