Angular JSでブートストラップナビゲーションバーのアクティブクラスを設定するにはどうすればいいですか? 質問する

Angular JSでブートストラップナビゲーションバーのアクティブクラスを設定するにはどうすればいいですか? 質問する

ブートストラップにアイテムを含むナビゲーションバーがある場合

Home | About | Contact

各メニュー項目がアクティブなときにアクティブクラスを設定するにはどうすればいいですか?つまり、class="active"角度ルートが

  1. #/家庭用
  2. #/aboutこのページについて
  3. #/contactお問い合わせページ

ベストアンサー1

非常にエレガントな方法は、ng-controller を使用して ng-view の外部で単一のコントローラーを実行することです。

<div class="collapse navbar-collapse" ng-controller="HeaderController">
    <ul class="nav navbar-nav">
        <li ng-class="{ active: isActive('/')}"><a href="/">Home</a></li>
        <li ng-class="{ active: isActive('/dogs')}"><a href="/dogs">Dogs</a></li>
        <li ng-class="{ active: isActive('/cats')}"><a href="/cats">Cats</a></li>
    </ul>
</div>
<div ng-view></div>

controllers.js に含めます:

function HeaderController($scope, $location) 
{ 
    $scope.isActive = function (viewLocation) { 
        return viewLocation === $location.path();
    };
}

おすすめ記事