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-modeldirective.

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

L'application a maintenant une propriété nommée firstname.

La ng-modeldirective 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 trueou false. Appliquez la ng-modeldirective à 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-modelpeuvent 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-modelattribut 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

Prénom:

Nom de famille:


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.