Angular peut améliorer de manière transparente la fonctionnalité des éléments de forme standard en utilisant les directives, et nous discuterons de ses avantages, notamment:
Liaison des données, création d'attribut de modèle, formulaire de vérification, informations de rétroaction après le formulaire de vérification, attributs d'instructions de formulaire
Ci-dessous, nous vérifions leur utilisation par le biais des cas:
1. Bidirectional Data Binding (NG-Model) et Model Property Impassemment
<! Doctype> <! - Utilisez le module -> <html ng-app = "exampleApp"> <éadf> <Title> Angular Directive </ title> <meta charset = "utf-8" /> <link rel = "stylesheet" type = "text / css" href = "css / bootstrap.min.css"> <link rs = "cssheet" type = "text / css" href = "css / bootstrap-theme.min.css"> </ head> <body> <! - Case: Bidrictional Data Binding -> <div ng-controlller = "Defaultctrl"> <! - Filter les éléments dont le complexe est faux -> <h3> à faire la liste <spande> {{{{{{{{{((todos | nutter: {complé 'false'}). longueur}} </span> </h3> <div> <div> <div> <label for = "Action"> Action: </Belle> <! - Ng modélisation bidirectionnelle bidirectionnelle bidirectionnelle bidirectionnelle bidirectionnelle bidirectionnelle bidirectionnelle Bidirectional bidirectional bidirectional bidirectional bidirectional bidirectional bidirectional bidirectional bidirectional bidirectional bidirectional bidirectional bidirectional bidirectional bidirectional bidirectional bidirectional bidirectional bidirectional bidirectional bidirectional bidirectional Bidirectional bidirectional bidirectional bidirectional bidirectional bidirectional bidirectional bidirectional bidirectional bidirectional bidirectional bidirectional bidirectional bidirectional bidirectional bidirectional bidirectional bidirectional bidirectional bidirectional bidirectional bidirectional Bidirectional bidirectional bidirectional bidirectional bidirectional bidirectional bidirectional bidirectional bidirectional bidirectional bidirectional bidirectional bidirectional bidirectional bidirectional bidirectional bidirectional bidirectional bidirectional bidirectional bidirectional bidirectional Bidirectional BI -> <! - Lorsque l'une des parties envoie le remplacement, l'autre change également -> <input type = "text" id = "action" ng-model = "newtodo.action"> </ div> <v> <label for = "emplacement"> emplacement: </ label> <select id = "Location" ng-model = "NewTodo.Location"> <option> Home </ option> Option <officier> Option <potion> Option " <option> Mall </ Option> </ SELECT> </div> <! - Ng-Click Cliquez sur Ajouter pour ajouter l'élément -> <Button Ng-Click = "AddNewitem (NewTodo)"> Ajouter </ Button> </div> <div> <Bable> <Thead> <Tr> <th> # </ Th> <Th> Action </th> <thed </th> </ tr> </ the> <t> <TH> <TH> TID </th> </ TR> </ TH> <T> <TR> <TH> THE TID </ TH> </ TR> </ TH> <TR> <TH> TID </ TH> </ TR> </ TH> <TH> <TH> TID </ TH> ng-repeat = "item dans todos"> <! - $ index par défaut est à 0, incrément -> <td> {{$ index + 1}} </td> <td> {{item.action}} </td> <td> <entrée = "Casse" ng-model = "itemPlete" /> </td> </div> </ div> <script type = "text / javascript" src = "js / angular.min.js"> </ script> <script type = "text / javascript"> // définir un module nommé ExampleAppangular.Module ("exampleapp", []) //fine a un contrôleur nommé defaultctrl .Controller ('' par défaut (Fonse {// Modèle de données $ scope.todos = [{Action: "Play Ball", complet: false}, {Action: "Singing", complet: false}, {Action: "Running", complet: true}, {Action: "Dance", complet: TRUE}, {Action: "Swimming", complet: False}, {Action: "Manger", complet: False},]; $ scope.addnewitem = fonction (newitem) {// déterminer if (angular.isdefined (newitem) && angular.isdefined (newitem.action) && angular.isdefined (newitem.location)) {$ scope.todos.push ({action: newitem.action + "(" + newitem.location + ") }) </cript> </ body> </html>Tout d'abord, le modèle de données Scope.Todos et la méthode AddNewItem () pour ajouter des données au modèle sont définis. Ensuite, l'action et l'emplacement de la forme dans la vue et la portée.Todos dans le modèle sont liées en utilisant le modèle NG-Model de liaison des données bidirectionnelle.
Enfin, la méthode AddNewItem () pour ajouter des données au modèle est déclenchée en cliquant sur l'attribut.
2. Formulaire de vérification
Avant de soumettre le formulaire au serveur, nous devons vérifier si les données soumises par l'utilisateur existent ou sont légales, sinon la soumission de données inutiles gaspillera les ressources.
<! Doctype> <! - Utilisez le module -> <html ng-app = "exampleApp"> <éadf> <Title> Angular Directive </ title> <meta charset = "utf-8" /> <link rel = "stylesheet" type = "text / css" href = "css / bootstrap.min.css"> <link rs = "cssheet" type = "text / css" href = "css / bootstrap-theme.min.css"> <y style> </ style> </ad> <body> <div id = "todopanel" ng-controller = "defaultctrl"> <! - Novaliate ng-submit = "addUser (newUser) Lorsque les données du formulaire sont légales, soumettez les données au modèle -> <form name =" myform "novalidate ng-sumit =" addUser (newUser) "> <div> <v> <label> name: </bked> <! - type = "text" requis ng-model = "newuser.name"> </ div> <v> <vabe> e-mail: </bable> <entrée name = "userMail" type = "e-mail" requis ng-model = "newuser.email"> </div> <div> <é label> <entrée name = "Convention" Type = "Checkbox" ng-model = "NewUser.Agreed" required> I Type To to the Ng-model = "NewUser.Agreed" required> i Times To the Ng-model = "NewUser.Agreed" required> i Times To the Ng-model = "NewUser.Agreed" requis> I Treat To the Ng-model = "NewUser.Agreed" NEODAD> I TEXT TO TAND TO AND-MODEL = " </ label> </div> <! - g-disabled = "MyForm. $ invalid" Le bouton Soumettre n'est pas disponible lorsqu'il est illégal de remplir l'un des formulaires -> <bouton type = "soumi" ng-disabled = "MyForm. $ invalid"> ok </ bouton> </ divi> <div> message: {{message} <div> ValId: {{monform. </ form> </ div> <script type = "text / javascript" src = "js / angular.min.js"> </ script> <script type = "text / javascript"> angular.module ("exampleApp", []) .Controller ("defaugnarctrl", fonction ($ Scope) {// ajouter les données utilisateur à modèle $ scope.Message $. (userDetails) {$ scope.mesage = userDetails.name + "(" + userdetails.email + ") (" + userdetails.agreed + ")";} // montre les résultats avant et après vérification $ scope.Message = "Ready";});Tout d'abord, la méthode SPOPE.MESSAGE et ADDUSER () du modèle de données pour ajouter des données au modèle est définie. Ensuite, les éléments de formulaire valident, l'attribut de nom et l'attribut ng-submit sont ajoutés à la vue. Ensuite, le modèle NG de liaison des données à double sens lie l'action et l'emplacement de la forme dans la vue et la portée.Todos dans le modèle sont liés et les attributs de vérification sont requis et les formulaires de messagerie sont utilisés.
Ensuite, le bouton Soumettre est désactivé. Il ne peut être utilisé que si toutes les données de formulaire sont légales. S'il est illégal, il sera handicapé (ng-dévisable = ”myform. $ Invalid”)
Enfin, les données sont soumises à la méthode AddUser () du modèle est terminée via l'attribut NG-Supp.
3. Informations de rétroaction de vérification du formulaire
Il est loin d'être suffisant pour nous de vérifier le formulaire, car l'utilisateur est confus car il ne sait pas pourquoi l'erreur s'est produite. Par conséquent, nous devons faire des informations sur les informations à l'utilisateur afin qu'il puisse comprendre quoi remplir
Introduire d'abord les classes à vérifier dans NG
L'utilisateur NG-PRISTIN n'a aucun éléments interactifs ajoutés à cette classe
Ng-Dirty L'utilisateur interagit avec des éléments est ajouté à cette classe
Résultat de validation ng-valide Les éléments valides sont ajoutés à cette classe
ng-invalid L'élément invalide est ajouté à cette classe
<! Doctype> <! - Utilisez le module -> <html ng-app = "exampleApp"> <éadf> <Title> Angular Directive </ title> <meta charset = "utf-8" /> <link rel = "stylesheet" type = "text / css" href = "css / bootstrap.min.css"> <link rs = "cssheet" type = "text / css" href = "css / bootstrap-theme.min.css"> <style> / * Style interactif et requis * / form.validate .ng-invalid-required.ng-dirty {background-Color: orange; } / * L'interaction est un style illégal * / form .ng-invalid.ng-diirty {background-Color: LightPink; } / * Le courrier électronique est illégal et interagit avec * / form.validate .ng-invalid-email.ng-diirty {background-Color: LightGoldenRodyellowel; } div.Error {couleur: rouge; Police-poids: Bold; } div.summary.ng-valid {couleur: vert; Police-poids: Bold; } div.summary.ng-invalid {couleur: rouge; Police-poids: Bold; } </ style> </ head> <body> <! - Case: Bidirectional Data Binding -> <div ng-controlller = "DefaultCtrl"> <! - Novalidate = "Novalidate" Just Ng Form Verification -> <! - Ng-Submit = "AdDuser (newSer)" Ajouter des données au modèle -> <! - Ng-Class = "Showvalid Legal, ShowValidation est vrai, qui déclenche la classe ng pour valider -> <form name = "myform" novalidate = "novalidate" ng-sumit = "addUser (newuser)" ng-class = "showvalidation? 'Valider': '' "> <div> <div> <vabed> e-mail: </ label> <entrée name =" e-mail "type =" e-mail "requis =" requis "ng-model =" newuser.email "> <! - Verification invite Message -> <div> <! - Afficher les informations de rétroaction -> <span ng-class =" error "ng-show =" showvalidation "> {{getError (myform.email. $ error)}} </span> </div> </div> <Button Type = "Soumider"> Ok </futton> <div> Message: {{message}} <! - Lorsque ma forme de Valid est vraie, sinon, sinon, ng-invalid -> < ng-class = "myform. $ valide? 'ng-valid': 'ng-invalid' "> valide: {{myform. $ valid}} </ div> </ form> </ div> <script type =" text / javascrip exampleAppangular.module ("exampleApp", []) // Définissez un contrôleur nommé defaultCtrl .Controller ('DefaultCtrl', fonction ($ Scope) {// Ajouter des données au modèle $ scope.adduser = fonction (userdetails) {if (myform. $ valid) {$ Scope.Message = userDetailS.Name + ". userDetails.email + ") (" + userdetails.agreed + ")";} else {$ scope.showvalidation = true;}} // modèle de données $ Scope.Message = "Ready"; (angular.isdefined (error)) {if (error.requure) {return "Veuillez saisir une valeur";} else if (error.email) {return "Veuillez saisir une adresse e-mail valide";Tout d'abord, définissez le style d'informations de rétroaction et le style de vérification de la forme avec style
Ensuite, rédigez les commentaires des informations lorsque l'erreur est écrite en js
Enfin lier la classe Ng dans la vue
4. Propriétés d'instructions de formulaire
1. Utilisez l'élément d'entrée
<! Doctype> <! - Utilisez le module -> <html ng-app = "exampleApp"> <adref> <Title> Angular Directive </ title> <meta charset = "utf-8" /> <link rel = "stylesheet" type = "text / css" href = "css / bootstrap.min.css"> <link rs = "cssheet" type = "text / css" href = "css / bootstrap-theme.min.css"> <ystyle> </ style> </ head> <body> <div id = "todopanel" ng-controller = "defaultctrl"> <form name = "myform" Noveride ng-required = "requirevalue" requis la valeur via la liaison des données -> <! - ng-minLength = "3" ng-maxLength = "10" Caractères maximum et minimum autorisés -> <! - ng-potern = "MatchPattern" Rangual Matching -> <entrée name = "Sample" ng-model = "EntingValue" ng-requied = "nécessaire ng-maxLengthrefther = "10" ng-potern = "MatchPattern"> </div> </div> <div> <! - Obligatoire -> <p> Erreur requise: {{myform.sample. $ error.requured}} </p> <! - Longueur maximum minimum -> <p> Erreur de longueur mine: {{myform.Sample. $ error.MinLeng Erreur: {{myform.sample. $ Error.maxLength}} </p> <! - ne correspond que des lettres minuscules -> <p> Erreur de modèle: {{myform.sample. $ Error.pattern}} </ p> <! type = "text / javascript" src = "js / angular.min.js"> </ script> <script type = "text / javascript"> // définir un module nommé exampleAppangular.module ("exampleapp", []) // définir un contrôleur nommé defauftctrl. $ scope.requireValue = true; $ scope.matchPattern = new regexp ("^ [az]");2. Sélectionnez la liste
<! Doctype> <! - Utilisez le module -> <html ng-app = "exampleApp"> <adref> <Title> Angular Directive </ title> <meta charset = "utf-8" /> <link rel = "stylesheet" type = "text / css" href = "css / bootstrap.min.css"> <link rs = "cssheet" type = "text / css" href = "css / bootstrap-theme.min.css"> <ystyle> </ style> </ head> <body> <div id = "todopanel" ng-controlller = "defaultctrl"> <form name = "myform" Noveriate item.id as item.Action Modifier la valeur de l'option -> <! - ng-options = "item.id as item.action groupe par item.place pour item dans todos" -> <sélectionner ng-model = "selectValue" ng-options = "item.id as item.action groupe par item.place pour item dans todos"> <option Value = "> (choisir one) </ option> {{selectValue || "Aucun"}} </p> </ div> </ form> </ div> <script type = "text / javascript" src = "js / angular.min.js"> </ script> <script type = "text / javascrip .Controller ('defaultctrl', fonction ($ scope) {// modèle de données $ scope.todos = [{id: 100, place: "School", Action: "play Ball", complet: false}, {id: 200, place: "home", action: "manger", complet: false}, {id: 300, place: "home", action: "watch". }) </cript> </ body> </html>Ce qui précède est tout le contenu de cet article. J'espère que cela sera utile à l'apprentissage de tous et j'espère que tout le monde soutiendra davantage Wulin.com.