如何在流星应用程序中按下后退按钮时正确设置活动导航选项卡
How Do I Properly Set Active Navigation Tab When Pressing the Back Button in Meteor Application?
我有一个多页流星应用程序,每个页面都包含一个导航模板。
我用铁路由器来切换页面。
我通过将相应的导航链接的类设置为"active"来指示用户在哪个页面。
例子:navigation.html
<li class="{{navClassName 'page1'}}">
<a href="/page1">Page 1 </a>
</li>
<li class="{{navClassName 'page2'}}">
<a href="/page1">Page 2 </a>
</li>
和
Template.registerHelper('navClassName', function (page) {
if (Router.current()) {
return Router.current().route.getName() === page ? "active" : "";
}
});
我的问题是,当我按下浏览器的后退按钮时,page1和page2的链接都显示为活动。
如果不能看到你的路由定义,我会说你必须在代码的某个地方有对第一个路由的重复引用。我可以肯定地说,你的全局模板帮助器是正确实现的,因为我定义我所有的活动选项卡模板帮助器的方式与你定义你的相同(只有很小的语法差异)。
对于你的HTML,一切看起来都很好,除了你的页面2锚标记引用错误的路由。我建议像这样实现你的标签,以利用铁路由器模板帮助器:
<li class="{{navClassName 'page1'}}">
<a href="{{pathFor 'page1'}}">Page 1</a>
</li>
<li class="{{navClassName 'page2'}}">
<a href="{{pathFor 'page2'}}">Page 2</a>
</li>
用这种方式定义你的HTML,如果你碰巧要更新你的路由路径,你根本不需要更新你的锚标记路径引用。它们会随着Iron Router提供的pathFor
模板助手的使用而相应改变。
如果你能编辑你的问题,包括你的路由定义逻辑,我可以帮助你更多地解决这个问题。
我认为使用zimme:active-route包。
install iron router package
meteor add zimme:active-route
使用<li class="{{isActiveRoute class='active' name='page1'}}">
<a href="{{pathFor 'page1'}}">Page 1</a>
</li>
<li class="{{isActiveRoute class='active' name='page2'}}">
<a href="{{pathFor 'page2'}}">Page 2</a>
</li>
因为它更简单
相关文章:
- 使用 AngularJS 设置活动选项卡样式
- 在页面加载时创建/设置活动的默认链接,但在单击其他链接时删除活动链接
- 在owlCarousel中设置活动项目
- 设置活动链接(不带 ul 列表)
- 无法设置活动菜单元素的样式
- 如何为引导轮播设置活动幻灯片
- 在手风琴中设置活动部分
- 设置活动选项卡当前选项卡
- 基于url设置活动选项卡
- 在静态导航上动态设置活动链接
- 为AJAX选项卡控件设置活动选项卡
- 如何在引导程序3转盘yii2中设置活动幻灯片
- 在另一个带有引导的页面上设置活动幻灯片
- jQuery UI菜单获取/设置活动UI菜单项
- JQuery -设置"活动"类用于image-scroll
- 在角度引导旋转木马上设置活动幻灯片
- 设置活动元素和非活动元素(动态)
- EmberJS -基于索引设置活动
- 如何设置活动链路指示灯位置
- $rootScope设置活动选项卡不起作用