Formulaires AngularJS
Les formulaires dans AngularJS fournissent la liaison de données et la validation des contrôles d'entrée.
Commandes d'entrée
Les contrôles d'entrée sont les éléments d'entrée HTML :
- éléments d'entrée
- sélectionner des éléments
- éléments de bouton
- éléments de zone de texte
Liaison de données
Les contrôles d'entrée fournissent une liaison de données à l'aide de la
ng-model
directive.
<input type="text" ng-model="firstname">
L'application a maintenant une propriété nommée firstname
.
La ng-model
directive lie le contrôleur d'entrée au reste de votre application.
La propriété firstname
, peut être référencée dans un contrôleur :
Exemple
<script>
var app = angular.module('myApp', []);
app.controller('formCtrl',
function($scope) {
$scope.firstname = "John";
});
</script>
Il peut également être fait référence ailleurs dans l'application :
Exemple
<form>
First Name: <input type="text" ng-model="firstname">
</form>
<h1>You entered: {{firstname}}</h1>
Case à cocher
Une case à cocher a la valeur true
ou false
. Appliquez la
ng-model
directive à une case à cocher et utilisez sa valeur dans votre application.
Exemple
Afficher l'en-tête si la case est cochée :
<form>
Check to show a header:
<input type="checkbox" ng-model="myVar">
</form>
<h1 ng-show="myVar">My
Header</h1>
Boutons radio
Liez les boutons radio à votre application avec la ng-model
directive.
Les boutons radio avec le même ng-model
peuvent avoir des valeurs différentes, mais seul celui sélectionné sera utilisé.
Exemple
Affichez du texte, en fonction de la valeur du bouton radio sélectionné :
<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>
La valeur de myVar sera soit dogs
, tuts
, soit
cars
.
Zone de sélection
Liez les cases de sélection à votre application avec la ng-model
directive.
La propriété définie dans l' ng-model
attribut aura la valeur de l'option sélectionnée dans la zone de sélection.
Exemple
Affichez du texte, en fonction de la valeur de l'option sélectionnée :
<form>
Select a topic:
<select ng-model="myVar">
<option value="">
<option value="dogs">Dogs
<option value="tuts">Tutorials
<option
value="cars">Cars
</select>
</form>
La valeur de myVar sera soit dogs
, tuts
, soit
cars
.
Un exemple de formulaire AngularJS
form = {"firstName":"John","lastName":"Doe"}
maître = {"firstName":"John","lastName":"Doe"}
Code de candidature
<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>
L' attribut novalidate est nouveau dans HTML5. Il désactive toute validation de navigateur par défaut.
Exemple expliqué
La directive ng-app définit l'application AngularJS.
La directive ng-controller définit le contrôleur d'application.
La directive ng-model lie deux éléments d'entrée à l' objet utilisateur dans le modèle.
Le contrôleur formCtrl définit les valeurs initiales de l' objet maître et définit la méthode reset() .
La méthode reset() définit l' objet utilisateur égal à l' objet maître .
La directive ng-click invoque la méthode reset() , uniquement si le bouton est cliqué.
L'attribut novalidate n'est pas nécessaire pour cette application, mais vous l'utiliserez normalement dans les formulaires AngularJS, pour remplacer la validation HTML5 standard.