Heim >Web-Frontend >js-Tutorial >So implementieren Sie den Tab-Wechsel mit AngularJS

So implementieren Sie den Tab-Wechsel mit AngularJS

php中世界最好的语言
php中世界最好的语言Original
2018-05-29 11:33:032365Durchsuche

Dieses Mal zeige ich Ihnen, wie Sie AngularJS zum Implementieren des Tabulatorwechsels verwenden.

Tab eins:

JavaScript

+html+css

<!DOCTYPE html>
<html>
  <head>
    <meta charset="utf-8">
    <title> js标签页tab切换</title>
    <style>
      #p1 .active{
        background:blue;
      }
      #p1 p{
        width:200px;
        height:200px;
        background:gray;
        border:1px solid black;
        display:none;
      }
    </style>
    <script>
      window.onload=function (){
        var op=document.getElementById('p1');
        var aBtn=op.getElementsByTagName('input');
        var ap=op.getElementsByTagName('p');
        for(var i=0;i<aBtn.length;i++){     //遍历p1中的按钮
          aBtn[i].index=i;      //给aBth[]添加自定义属性
          aBtn[i].onclick=function (){
            for(var i=0;i<aBtn.length;i++){ //遍历按钮,将class清除
              aBtn[i].className=&#39;&#39;;
              ap[i].style.display=&#39;none&#39;;
            }
            this.className=&#39;active&#39;;
            ap[this.index].style.display=&#39;block&#39;;
          }
        }
      }
    </script>
  </head>
  <body>
    <p id="p1">
      <input class="active" type="button" value="选项1" />
      <input type="button" value="选项2" />
      <input type="button" value="选项3" />
      <input type="button" value="选项4" />
      <p style="display:block;">111</p>
      <p>222</p>
      <p>333</p>
      <p>444</p>
    </p>
  </body>
</html>

Tab zwei: AngularJS-Befehle:

ng-class, ng-click, ng-if

<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <title>AngularJS标签页tab切换</title>
  <style>
    .active {
      background-color: orange;
    }
  </style>
  <script src="http://apps.bdimg.com/libs/angular.js/1.4.6/angular.min.js"></script>
</head>
<body ng-app="s1.app">
<p>
  <button ng-class="{ &#39;active&#39; : data.current == 1 }" ng-click="actions.setCurrent(1)">张三</button>
  <button ng-class="{ &#39;active&#39; : data.current == 2 }" ng-click="actions.setCurrent(2)">李四</button>
  <button ng-class="{ &#39;active&#39; : data.current == 3 }" ng-click="actions.setCurrent(3)">王五</button>
</p>
<p>
  <p ng-if="data.current == 1">张三的个人信息</p>
  <p ng-if="data.current == 2">李四的个人信息</p>
  <p ng-if="data.current == 3">王五的个人信息</p>
  <script>
    var app = angular.module('s1.app', []);
    app.run(function ($rootScope) {
      $rootScope.data = {
        current: "1" // 1代表张三,2代表李四,3代表王五
      };
      $rootScope.actions =
      {
        setCurrent: function (param) {
          $rootScope.data.current = param;
        }
      }
    })
  </script>
</p>
</body>
</html>

Registerkarte drei: AngularJS-Befehl:

ng-class, ng-click, ng-show

<!DOCTYPE html>
<html ng-app="myApp">
<head lang="en">
  <meta charset="UTF-8">
  <title AngularJS标签页tab切换</title>
  <script src="http://apps.bdimg.com/libs/angular.js/1.4.6/angular.min.js"></script>
</head>
<body>
<section ng-controller="myCtrl as panel">
  <ul>
    <li ng-class="{active:panel.isSelected(1)}">
      <a href ng-click="panel.selectTab(1)">1111111111</a>
    </li>
    <li ng-class="{active:panel.isSelected(2)}">
      <a href ng-click="panel.selectTab(2)">2222222222</a>
    </li>
    <li ng-class="{active:panel.isSelected(3)}">
      <a href ng-click="panel.selectTab(3)">33333333333</a>
    </li>
  </ul>
  <!--是否点击-->
  {{panel.isSelected(1)}}
  {{panel.isSelected(2)}}
  {{panel.isSelected(3)}}
  <p class="panel" ng-show="panel.isSelected(1)">
    <h1>我是1111111111111111111111</h1>
  </p>
  <p class="panel" ng-show="panel.isSelected(2)">
    <h1>我是22222222222222222</h1>
  </p>
  <p class="panel" ng-show="panel.isSelected(3)">
    <h1>我是3333333333333333333333</h1>
  </p>
</section>
<script>
  var app = angular.module("myApp", []);
  app.controller("myCtrl", function () {
    this.tab = 2;/*设置默认*/
    this.selectTab = function (setTab) {/*设置tab点击事件*/
      this.tab = setTab;
    };
    this.isSelected = function (checkedTab) {/*页面的切换*/
      return this.tab === checkedTab;
    }
  });
</script>
</body>
</html>

Tab 4: AngularJS-Befehl

Die zweite und dritte Methode sind aus der Verbesserung des folgenden Codes abgeleitet und haben die gleichen Auswirkungen.

<!DOCTYPE html>
<html ng-app="myApp">
<head lang="en">
  <meta charset="UTF-8">
  <title>AngularJS标签页tab切换</title>
  <script src="http://apps.bdimg.com/libs/angular.js/1.4.6/angular.min.js"></script>
</head>
<body>
<section ng-init="tab=3">
  <ul>
    <li ng-class="{active:tab===1}">
      <a href ng-click="tab=1">1111111111</a>
    </li>
    <li ng-class="{active:tab===2}">
      <a href ng-click="tab=2">2222222222</a>
    </li>
    <li ng-class="{active:tab===3}">
      <a href ng-click="tab=3">33333333333</a>
    </li>
  </ul>
  <!--是否点击-->
  {{tab===1}}
  {{tab===2}}
  {{tab===3}}
  <p class="panel" ng-show="tab===1">
    <h1>我是1111111111111111111111</h1>
  </p>
  <p class="panel" ng-show="tab===2">
    <h1>我是22222222222222222</h1>
  </p>
  <p class="panel" ng-if="tab===3">
    <h1>我是3333333333333333333333</h1>
  </p>
</section>
<script>
  var app = angular.module("myApp", []);
  app.controller("myCtrl", function () {
  });
</script>
</body>
</html>

Aber es gibt einen Unterschied zwischen ng-show und ng-if

Der erste Unterschied ist,

Dieser Dom-Knoten wird nur erstellt, wenn der nachfolgende Ausdruck wahr ist.

ng-if wird zunächst erstellt. Verwenden Sie
und ng-show, um die Anzeige oder Nichtanzeige zu steuern. display:blockdisplay:none

Der zweite Unterschied besteht darin, dass

(implizit) einen neuen Bereich generiert und

, ng-if usw. dynamisch einen neuen Bereich erstellt neuer Geltungsbereich Das Gleiche gilt für die Schnittstelle. ng-switchng-includeDies führt zu einer Bindung

mit Basisvariablen in

und zur Bindung dieses Modells an einen anderen Anzeigebereich in der äußeren Ebene p. Wenn sich die innere Ebene ändert, wird die äußere Ebene nicht synchronisiert. Ändern, da zu diesem Zeitpunkt bereits zwei Variablen vorhanden sind. ng-if

<p>{{name}}</p>
<p ng-if="true">
  <input type="text" ng-model="name">
</p>
ng-modelng-show hat dieses Problem nicht, da es nicht über einen Scope der ersten Ebene verfügt.

Die Möglichkeit, diese Art von Problem zu vermeiden, besteht darin, die Elemente auf der Seite immer an die Eigenschaften des Objekts zu binden (

) und nicht direkt an die Basisvariablen (

). Scope in AngularJS data.xx Ich glaube, dass Sie die Methode beherrschen, nachdem Sie den Fall in diesem Artikel gelesen haben. Weitere spannende Informationen finden Sie in anderen verwandten Artikeln auf der chinesischen PHP-Website!

Empfohlene Lektüre:

Wie man mit einem Fehler bei der Installation des nmp Taobao-Images auf dem Mac umgeht


So bedienen Sie Koa2 WeChat Entwicklung eines öffentlichen Kontos Einrichten einer lokalen Entwicklungs- und Debugging-Umgebung

Das obige ist der detaillierte Inhalt vonSo implementieren Sie den Tab-Wechsel mit AngularJS. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn