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-model
Direktive.
<input type="text" ng-model="firstname">
Die Anwendung hat jetzt eine Eigenschaft namens firstname
.
Die ng-model
Direktive bindet den Eingabecontroller an den Rest Ihrer Anwendung.
Auf die Eigenschaft firstname
kann 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 true
oder false
. Wenden Sie die
ng-model
Direktive 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-model
kö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-model
Attribut 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
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.