AngularJS で次のようにルートを設定しました:
$routeProvider
.when('/dashboard', {templateUrl:'partials/dashboard', controller:widgetsController})
.when('/lab', {templateUrl:'partials/lab', controller:widgetsController})
トップバーにタブとしてスタイル設定されたリンクがいくつかあります。現在のテンプレートまたは URL に応じて、タブに「アクティブ」クラスを追加するにはどうすればよいでしょうか?
ベストアンサー1
URL に頼らずにこれを解決する方法は、$routeProvider
次のように構成中にすべての部分にカスタム属性を追加することです。
$routeProvider.
when('/dashboard', {
templateUrl: 'partials/dashboard.html',
controller: widgetsController,
activetab: 'dashboard'
}).
when('/lab', {
templateUrl: 'partials/lab.html',
controller: widgetsController,
activetab: 'lab'
});
$route
コントローラーで公開します:
function widgetsController($scope, $route) {
$scope.$route = $route;
}
active
現在アクティブなタブに基づいてクラスを設定します。
<li ng-class="{active: $route.current.activetab == 'dashboard'}"></li>
<li ng-class="{active: $route.current.activetab == 'lab'}"></li>