Heim > Web-Frontend > js-Tutorial > Einfache Möglichkeit, Optionsfelder und Kontrollkästchen mithilfe von AngularJS_AngularJS zu verwalten

Einfache Möglichkeit, Optionsfelder und Kontrollkästchen mithilfe von AngularJS_AngularJS zu verwalten

WBOY
Freigeben: 2016-05-16 15:53:52
Original
1197 Leute haben es durchsucht

Die Formularverarbeitung von AngularJS ist recht einfach. Wenn AngularJS die bidirektionale Datenbindung zur Formularvalidierung verwendet, hilft uns das im Wesentlichen bei der Formularverarbeitung.

Es gibt viele Beispiele für die Verwendung von Kontrollkästchen und es gibt viele Möglichkeiten, wie wir damit umgehen können. In diesem Artikel werfen wir einen Blick auf die Bindung von Kontrollkästchen und Optionsfeldern an Datenvariablen und was wir damit machen können.

Winkelform erstellen

In diesem Artikel benötigen wir zwei Dateien: index.html und app.js. In app.js befindet sich der gesamte Angular-Code (er ist nicht groß) und in index.html werden die Aktionen ausgeführt. Zuerst erstellen wir die AngularJS-Datei.

// app.js
 
var formApp = angular.module('formApp', [])
 
  .controller('formController', function($scope) {
  
    // we will store our form data in this object
    $scope.formData = {};
     
  });
Nach dem Login kopieren

In dieser Datei erstellen wir lediglich die Angular-Anwendung. Wir haben außerdem einen Controller und ein Objekt erstellt, um alle Formulardaten zu speichern.

Werfen wir einen Blick auf die Datei index.html. In dieser Datei erstellen wir das Formular und führen dann die Datenbindung durch. Wir haben Bootstrap verwendet, um die Seite schnell zu gestalten.

<-- index.html -->
<!DOCTYPE html>
<html>
<head>
 
  <!-- CSS -->
  <!-- load up bootstrap and add some spacing -->
  <link rel="stylesheet" href="//netdna.bootstrapcdn.com/bootstrap/3.1.1/css/bootstrap.min.css">
  <style>
    body     { padding-top:50px; }
    form      { margin-bottom:50px; }
  </style>
 
  <!-- JS -->
  <!-- load up angular and our custom script -->
  <script src="http://code.angularjs.org/1.2.13/angular.js"></script>
  <script src="app.js"></script>
</head>
 
<!-- apply our angular app and controller -->
<body ng-app="formApp" ng-controller="formController">
<div class="col-xs-12 col-sm-10 col-sm-offset-1">
 
  <h2>Angular Checkboxes and Radio Buttons</h2>
 
  <form>
   
    <!-- NAME INPUT -->
    <div class="form-group">
      <label>Name</label>
      <input type="text" class="form-control" name="name" ng-model="formData.name">
    </div>
     
    <!-- =============================================== -->
    <!-- ALL OUR CHECKBOXES AND RADIO BOXES WILL GO HERE -->
    <!-- =============================================== -->
     
    <!-- SUBMIT BUTTON (DOESNT DO ANYTHING) -->
    <button type="submit" class="btn btn-danger btn-lg">Send Away!</button>
     
  </form>
   
  <!-- SHOW OFF OUR FORMDATA OBJECT -->
  <h2>Sample Form Object</h2>
  <pre class="brush:php;toolbar:false">
    {{ formData }}
  
Nach dem Login kopieren

Nachdem die Erstellung abgeschlossen ist, haben wir ein Formular mit Namenseingabe. Wenn alles so funktioniert, wie wir es uns vorgestellt haben, sollten Sie, wenn Sie etwas in die Namenseingabe eingeben, es unten im Abschnitt

 sehen können.<br />
<br />
<strong>Kontrollkästchen</strong></p>
<p>Kontrollkästchen kommen in Formularen sehr häufig vor. Als nächstes werfen wir einen Blick darauf, wie Angular ngModel verwendet, um die Datenbindung zu implementieren. Wenn Sie viele Kontrollkästchen haben, kann es manchmal überwältigend sein, mit den Daten umzugehen, wenn Sie sie an ein Objekt binden. </p>
<p>Innerhalb des von uns erstellten formData-Objekts haben wir auch ein weiteres Objekt erstellt. Wir nennen es favoriteColors und fordern den Benutzer auf, die Lieblingsfarbe auszuwählen: <br />
<br />
</p>
<div class="jb51code">
<div class="code" style="position:relative; padding:0px; margin:0px;"><pre class="brush:js;">
<!-- MULTIPLE CHECKBOXES -->
<label>Favorite Colors</label>
<div class="form-group">
  <label class="checkbox-inline">
    <input type="checkbox" name="favoriteColors" ng-model="formData.favoriteColors.red"> Red
  </label>
  <label class="checkbox-inline">
    <input type="checkbox" name="favoriteColors" ng-model="formData.favoriteColors.blue"> Blue
  </label>
  <label class="checkbox-inline">
    <input type="checkbox" name="favoriteColors" ng-model="formData.favoriteColors.green"> Green
  </label>
</div>
Nach dem Login kopieren

Wenn der Benutzer auf eines der oben genannten Kontrollkästchen klickt, sieht er sofort die Änderung des formData-Objekts. Wir speichern den Kontrollkästchenwert im fromData.favoriteColors-Objekt. Auf diese Weise übergeben wir den Kontrollkästchenwert an den Server.

Checkbox-Klickverarbeitung

Manchmal müssen Sie etwas mit jemandem tun, nachdem er auf ein Kontrollkästchen geklickt hat. Die von Ihnen erforderliche Verarbeitung kann wie folgt aussehen: einen Wert berechnen, einige Variablen ändern oder eine Datenbindung durchführen. Dazu erstellen Sie die Funktion innerhalb von app.js mit $scope.yourFunction = function() {};. Dann können Sie ng-click="yourFunction()" im Kontrollkästchen verwenden, um diese Funktion aufzurufen.

Es gibt viele Möglichkeiten, mit Formular-Kontrollkästchen umzugehen, und Angular bietet eine sehr einfache Methode: Verwenden Sie ng-click, um eine benutzerdefinierte Funktion aufzurufen.

Passen Sie den dem Kontrollkästchen entsprechenden Wert an

Standardmäßig ist der an das Kontrollkästchen gebundene Wert wahr oder falsch. Manchmal möchten wir andere Werte zurückgeben. Angular bietet eine sehr gute Möglichkeit, damit umzugehen: die Verwendung von ng-ture-value und ng-false-value.

Wir fügen einen weiteren Satz Kontrollkästchen hinzu, aber dieses Mal verwenden wir nicht mehr wahr oder falsch, sondern benutzerdefinierte Werte.

<!-- CUSTOM VALUE CHECKBOXES -->
<label>Personal Question</label>
<div class="checkbox">
  <label>
    <input type="checkbox" name="awesome" ng-model="formData.awesome" ng-true-value="ofCourse" ng-false-value="iWish">
    Are you awesome&#63;
  </label>
</div>
Nach dem Login kopieren

Außerdem haben wir jetzt eine tolle Variable zum formData-Objekt hinzugefügt. Wenn dieser Wert zu diesem Zeitpunkt auf „true“ gesetzt ist, sollte der zurückgegebene Wert ofCourse sein. Wenn er auf „false“ gesetzt ist, sollte der zurückgegebene Wert iWish sein.

Kontrollkästchen

Laut offizieller Dokumentation unterscheidet sich dies vom Optionsfeld:

<input type="radio"
  ng-model="string"
  value="string"
  [name="string"]
  [ng-change="string"]
  ng-value="string">
Nach dem Login kopieren

Um mehr über Kontrollkästchen zu erfahren, folgen Sie bitte der Angular-Kontrollkästchen-Dokumentation.
Optionsfeld

Optionsfelder sind einfacher als Kontrollkästchen, da keine Multiple-Choice-Daten gespeichert werden müssen. Ein Optionsfeld ist ein Wert, der angezeigt werden soll.

<!-- RADIO BUTTONS -->
<label>Chicken or the Egg&#63;</label>
<div class="form-group">
  <div class="radio">
    <label>
      <input type="radio" name="chickenEgg" value="chicken" ng-model="formData.chickenEgg">
      Chicken
    </label>
  </div>
  <div class="radio">
    <label>
      <input type="radio" name="chickenEgg" value="egg" ng-model="formData.chickenEgg">
      Egg
    </label>
  </div>
</div>
Nach dem Login kopieren

Genau so ist das Optionsfeld an das Datenobjekt gebunden.

Verwendung von Optionsfeldern

Laut der offiziellen Dokumentation sind folgende Optionen verfügbar:

<input type="radio"
    ng-model="string"
    value="string"
    [name="string"]
    [ng-change="string"]
    ng-value="string">
Nach dem Login kopieren

Verwandte Etiketten:
Quelle:php.cn
Vorheriger Artikel:Automatisches Karusselleffekt-Plug-in für Bilder und Texte, implementiert durch JQuery_jquery Nächster Artikel:So entfernen Sie das #-Zeichen in der URL unter AngularJS_AngularJS
Erklärung dieser Website
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
Neueste Artikel des Autors
Aktuelle Ausgaben
verwandte Themen
Mehr>
Beliebte Empfehlungen
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage