2016-04-10 2 views
1

私はWeb開発が初めてです。最近、Angular JSでTab機能を実装する例を試していました。ng-classで条件演算子を使用する - AngularJS

I 条件演算子を次のコードに適用します。 condtional演算子を適用できますか?私はそれを正しく得る原因を引き起こす原因。そのエラーを示しています。

<div class="tab-content"> 
    <div ng-class="{'tab-pane active': activeTab === 1, 'tab-pane' : activeTab !== 1}">Panel 1 Content</div> 
    <div ng-class="{'tab-pane active': activeTab === 2, 'tab-pane' : activeTab !== 2}">Panel 2 Content</div> 
    <div ng-class="{'tab-pane active': activeTab === 3, 'tab-pane' : activeTab !== 3}">Panel 3 Content</div> 
    </div> 

は、下から全体のコードを見つけてください:私が取得しようとしています

タブが動的にクリックしてください。その結果、タブクリック時に対応するペインがアクティブになります。

<!doctype html> 
<html lang="en"> 
    <head> 
    <meta charset="utf-8"> 
    <meta http-equiv="X-UA-Compatible" content="IE=edge"> 
    <title>Bootstrap tab panel with Angular</title> 
    <link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.5/css/bootstrap.min.css" /> 
    </head> 
    <body ng-app="app" ng-controller="ctrl"> 
     <ul class="nav nav-tabs"> 
     <li ng-class="{'active' : activeTab == 1}"><a href="" ng-click="setActiveTab(1)">One</a></li> 
     <li ng-class="{'active' : activeTab == 2}"><a href="" ng-click="setActiveTab(2)">Two</a></li> 
     <li ng-class="{'active' : activeTab == 3}"><a href="" ng-click="setActiveTab(3)">Three</a></li> 
     </ul> 

     <div class="tab-content"> 
     <div ng-class="{'tab-pane active': activeTab === 1, 'tab-pane' : activeTab !== 1}">Panel 1 Content</div> 
     <div ng-class="{'tab-pane active': activeTab === 2, 'tab-pane' : activeTab !== 2}">Panel 2 Content</div> 
     <div ng-class="{'tab-pane active': activeTab === 3, 'tab-pane' : activeTab !== 3}">Panel 3 Content</div> 
     </div> 
     <script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.3.15/angular.min.js"></script> 
     <script> 
     angular.module("app", []) 
      .controller("ctrl", ['$scope', function($scope) { 
       $scope.activeTab = 1; 

       $scope.setActiveTab = function(tabToSet) { 
        $scope.activeTab = tabToSet; 
       } 
      }]); 
     </script> 
    </body> 
</html> 
+0

エラーは何ですか。このコードは、JSFiddleでjavascriptエラーがなくても動作するようです。 –

+0

私はng-class = "{activeTab === 1? 'tab-pane active': 'tab-pane'}"のようなものを試していました。私は間違っていると信じています。 –

答えて

2

デフォルトクラスとしてtab-paneを追加することにより、ng-class条件内部の単一の式にそれを最小限にし、タブがアクティブである場合、条件付きactiveクラスを追加することができます。

class="tab-pane" ng-class="{'active': activeTab === 1} 
+0

簡潔なコードをお寄せいただきありがとうございます。完璧に動作します。 以前は条件演算子を使って以下のようなことをしていました。 ng-class = "{activeTab === 1? 'タブペインがアクティブ': 'タブペイン'} 'です。私は間違っていると信じています。 –

+0

それは私には正しいようです...しかし、不必要にタブペインクラスを追加しています...常にそこにあるでしょう...条件付きでアクティブなクラスを追加してください –

+0

あなたのポイントを得ました。あなたの提案に従います。あなたのアドバイスをありがとう。 –