使用带有ng-class的条件运算符 - AngularJS

时间:2016-04-10 13:33:01

标签: javascript angularjs angular-ui-bootstrap ng-class

我是网络开发的新手。最近正在尝试在Angular JS中实现Tab功能的一个例子。

想要将条件运算符应用于以下代码。 我可以申请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>

请从下面找到整个代码:

我正在尝试动态选择Tab键。因此,在选项卡上单击相应的窗格是活动的。

<!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>

1 个答案:

答案 0 :(得分:2)

您可以将ng-class条件中的单个表达式最小化,方法是将tab-pane添加为默认类,并在制表符处于活动状态时有条件地添加active类。

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