【发布时间】:2012-09-22 02:09:05
【问题描述】:
我正在使用 AngularJS 并尝试在显示该选项卡的内容时向我的菜单添加一个“当前”类。这是我到目前为止所拥有的,并且在加载页面时工作正常:
HTML:
<ul id="nav">
<li><a href="#/one" class="highlighttab">One</a></li>
<li><a href="#/two" class="highlighttab">Two</a></li>
</ul>
JS:
myModule.directive('highlighttab', function($location) {
var currentPath = "#" + $location.path();
return {
restrict: 'C',
link: function(scope, element, attrs) {
var href = element.attr("href");
if (currentPath == href)
{
element.addClass("current");
}
}
};
});
当页面 url 为 #/one 或 /#two 时,这会将“当前”类添加到正确的 <a> 标签中
问题是,如果我单击第二个选项卡,则不会将类添加到其中。我想我需要一些方法来让指令中的代码在 URL 更改时重新运行。有什么办法吗?
【问题讨论】:
-
kfis 的回答使用了一个指令,所以可能正是你想要的。
标签: javascript jquery ajax angularjs