AngularJS-Formulare


Forms in AngularJS bietet Datenbindung und Validierung von Eingabesteuerelementen.


Eingabesteuerung

Eingabesteuerelemente sind die HTML-Eingabeelemente:

  • Eingabeelemente
  • Elemente auswählen
  • Schaltflächenelemente
  • textarea-Elemente

Datenbindung

Eingabesteuerelemente bieten Datenbindung mithilfe der ng-modelDirektive.

<input type="text" ng-model="firstname">

Die Anwendung hat jetzt eine Eigenschaft namens firstname.

Die ng-modelDirektive bindet den Eingabecontroller an den Rest Ihrer Anwendung.

Auf die Eigenschaft firstnamekann in einem Controller verwiesen werden:

Beispiel

<script>
var app = angular.module('myApp', []);
app.controller('formCtrl', function($scope) {
  $scope.firstname = "John";
});
</script>

Es kann auch an anderer Stelle im Antrag darauf verwiesen werden:

Beispiel

<form>
  First Name: <input type="text" ng-model="firstname">
</form>

<h1>You entered: {{firstname}}</h1>


Kontrollkästchen

Ein Kontrollkästchen hat den Wert trueoder false. Wenden Sie die ng-modelDirektive auf ein Kontrollkästchen an und verwenden Sie ihren Wert in Ihrer Anwendung.

Beispiel

Kopfzeile anzeigen, wenn das Kontrollkästchen aktiviert ist:

 <form>
  Check to show a header:
  <input type="checkbox" ng-model="myVar">
</form>

<h1 ng-show="myVar">My Header</h1>

Radio Knöpfe

Binden Sie Optionsfelder mit der ng-model Direktive an Ihre Anwendung.

Optionsfelder mit demselben ng-modelkönnen unterschiedliche Werte haben, aber nur der ausgewählte wird verwendet.

Beispiel

Anzeigen von Text basierend auf dem Wert des ausgewählten Optionsfelds:

<form>
  Pick a topic:
  <input type="radio" ng-model="myVar" value="dogs">Dogs
  <input type="radio" ng-model="myVar" value="tuts">Tutorials
  <input type="radio" ng-model="myVar" value="cars">Cars
</form>

Der Wert von myVar ist entweder dogs, tuts, oder cars.


Auswahlfeld

Binden Sie Select-Boxen mit der ng-model Direktive an Ihre Anwendung.

Die im ng-modelAttribut definierte Eigenschaft hat den Wert der ausgewählten Option in der Auswahlbox.

 Beispiel

Zeigen Sie Text an, basierend auf dem Wert der ausgewählten Option:

<form>
  Select a topic:
  <select ng-model="myVar">
    <option value="">
    <option value="dogs">Dogs
    <option value="tuts">Tutorials
    <option value="cars">Cars
  </select>
</form>

Der Wert von myVar ist entweder dogs, tuts, oder cars.


Ein Beispiel für ein AngularJS-Formular

Vorname:

Nachname:


form = {"firstName":"John","lastName":"Doe"}

master = {"firstName":"John","lastName":"Doe"}


Anwendungscode

<div ng-app="myApp" ng-controller="formCtrl">
  <form novalidate>
    First Name:<br>
    <input type="text" ng-model="user.firstName"><br>
    Last Name:<br>
    <input type="text" ng-model="user.lastName">
    <br><br>
    <button ng-click="reset()">RESET</button>
  </form>
  <p>form = {{{user}}</p>
  <p>master = {{{master}}</p>
</div>

<script>
var app = angular.module('myApp', []);
app.controller('formCtrl', function($scope) {
  $scope.master = {firstName: "John", lastName: "Doe"};
  $scope.reset = function() {
    $scope.user = angular.copy($scope.master);
  };
  $scope.reset();
});
</script>

Das novalidate- Attribut ist neu in HTML5. Es deaktiviert jede standardmäßige Browservalidierung.


Beispiel erklärt

Die ng-app- Direktive definiert die AngularJS-Anwendung.

Die Direktive ng-controller definiert den Anwendungscontroller.

Die Direktive ng-model bindet zwei Eingabeelemente an das Benutzerobjekt im Modell.

Der formCtrl- Controller setzt Anfangswerte für das Master- Objekt und definiert die reset()- Methode.

Die Methode reset() setzt das Benutzerobjekt gleich dem Masterobjekt .

Die Direktive ng-click ruft die Methode reset() nur dann auf , wenn auf die Schaltfläche geklickt wird.

Das novalidate-Attribut wird für diese Anwendung nicht benötigt, aber normalerweise werden Sie es in AngularJS-Formularen verwenden, um die Standard-HTML5-Validierung zu überschreiben.