我創建基於關閉此一個使用AngularJS
從這個tutorial
不過,我想保持積極的選擇,一旦鏈接被點擊發現http://plnkr.co/edit/xzcjStdvmkI2rpfMzLjI?p=preview的側邊欄上突出顯示當前欄選項卡。我試着添加數據切換,但似乎適用於nav-pills而不是navbar。我還發現,我已經嘗試實現的是,主動導航指令:
angular.module('sidebarmodule')
.directive('isActiveNav', ['$location', function ($location) {
return {
restrict: 'A',
link: function (scope, element) {
scope.location = $location;
scope.$watch('location.path()', function (currentPath) {
if ('/#' + currentPath === element[0].attributes['href'].nodeValue) {
element.parent().addClass('active');
} else {
element.parent().removeClass('active');
}
});
}
};
}]);
我在側邊欄模板調用像這樣:
<li> <a is-active-nav href="#">Link1</a> </li>
我嘗試另一種方法是在我的控制器加入
$scope.isActive = function (viewLocation) { return viewLocation === $location.path(); };
,然後添加到模板:
<li ng-class="{ active: isActive('/importinvoice')}"><a href="#/firstlink">First Link</a></li>
但是,我所做的任何操作都不會在導航到該頁面後突出顯示側邊欄元素。我試圖避開jQuery,因爲我希望它只是一個AngularJS解決方案。
我嘗試了這個stackoverflow answer的大部分解決方案,但無法讓它們中的任何一個在重擊器上工作。
愚蠢的我忘了在風格上添加了活動類。非常感謝您的工作Plunkr! – jenryb