Угловой может плавно усилить функциональность элементов стандартной формы с использованием директив, и мы обсудим его преимущества, включая:
Привязка данных, создание атрибутов модели, форма проверки, информация о обратной связи после формы проверки, атрибуты инструкции формы
Ниже мы проверяем их использование в случаях:
1. Двунаправленное связывание данных (NG-модель) и создание моделей свойств
<! Doctype> <!-Использовать модуль-> <html ng-app = "exampleApp"> <Head> <Title> Angular Directive </title> <meta charset = "utf-8"/> <link rel = "stylesheet" type = "text/css" href = "css/boundptrap.min.css"> <lind relesheet "href =" css/boundptrap.min.css " type = "text/css" href = "css/bootstrap-theme.min.css"> </head> <body> <!-case: Difulational Data Binding-> <div ng-controller = "defaultctrl"> <!-Фильтрующие элементы, чьи полные-false-> <h3> для выполнения списка> {{todos | 'false'}).length}}</span></h3> <div> <div> <div> <label for="action">Action: </label> <!-- ng-model 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 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-> <!-Когда одна из сторон отправляет замену, другая также изменяется-> <input type = "text" id = "action" ng-model = "newtodo.action"> </div> <div> <label для = "location"> Расположение: </label> <select id = "location" ng-model = "newtodo. <опция> Mall </option> </select> </div> <!-ng-click Нажмите «Добавить», чтобы добавить элемент-> <кнопка ng-click = "addnewitem (newtodo)"> Добавить </button> </div> <div> <table> <thead> <tr> <th>#</th> <T. ng-repeat = "item in todos"> <!-$ Индекс по умолчанию по умолчанию 0, увеличение-> <Td> {{$ index + 1}} </td> <td> {{item.Action}} </td> <td> <input = "checkbox" ng-model = "item. </div> </div> <script type = "text/javascript" src = "js/angular.min.js"> </script> <script type = "text/javascript"> // Определение модуля с именем exampleappangular.module ("Samemplapp", []) // Defuller DefaultCr ($ scope) {// Модель данных $ scope.todos = [{action: «play ball», полная: false}, {action: «пение», полное: false}, {action: «running», полное: true}, {action: «танец», полное: true}, {aeply: «Swimment», полное: false}, eave: «eating», adform, adform: adform: afled: $ scope.addnewitem = function (newItem) {// определить ip (angular.isdefined (newitem) && angular.isdefined (newitem.action) && angular.isdefined (newitem.location)) {$ scope.todos.push ({action: newitem.action + »(« + newtem.location. }) </script> </body> </html>Во -первых, определены модель данных. Затем действие и расположение формы в представлении и объеме .todos в модели связаны с использованием двустороннего связывания данных Ng-Model.
Наконец, метод addNewItem () для добавления данных в модель запускается, нажав на атрибут.
2. Форма проверки
Прежде чем мы отправим форму на сервер, нам необходимо проверить, существуют ли данные, представленные пользователем или являются законными, в противном случае отправка бесполезных данных будет тратить ресурсы.
<! Doctype> <!-Использовать модуль-> <html ng-app = "exampleApp"> <Head> <Title> Angular Directive </title> <meta charset = "utf-8"/> <link rel = "stylesheet" type = "text/css" href = "css/boundptrap.min.css"> <lind relesheet "href =" css/boundptrap.min.css " type = "text/css" href = "css/bootstrap-teme.min.css"> <style> </style> </head> <body> <div id = "todopanel" ng-controller = "defaultctrl"> <!-Новалидат означает отказаться от проверки формы, которая приходит с Browser и использует собственную версию Ng-> <> <> <!-> <! ng-submit = "adduser (newuser) Когда данные формы являются законными, отправьте данные в модель-> <form name =" myform "novalidate ng-submit =" adduser (newuser) "> <div> <div> <babel> Имя: </label> <!-Требуется таблица. name = "username" type = "text" требуется ng-model = "newuser.name"> </div> <div> <babel> Электронная почта: </label> <input name = "usermail" type = "email" ng-model = "newuser.email"> </div> <div> <label> <put name = "typeded =" chearbobe "ng-mode. Я согласен с условиями и условиями </label> </div> <!-g-disabled = "myform. $ Invalid" Кнопка отправки недоступна, когда нелегально заполнять любую из форм-> <button Type = "Отправить" ng-disablet = "myForm. $ Invalid"> OK </button> </div> <div> Сообщение: {{{{{{{{div> valive> vallif> </div> </form> </div> <script type = "text/javascript" src = "js/angular.min.js"> </script> <script type = "text/javascript"> angular.module ("exampleapp", []). Controller ("DefaultCtrl ($ rafope) $ scope.adduser = function (userdetails) {$ scope.message = userdetails.name + "(" + userdetails.email + ") (" + userdetails.agreed + ")";Во -первых, определены метод модели данных. Затем элементы формы подтверждают, атрибут имени и атрибут NG-Submit добавляются в представление. Затем двусторонняя привязка данных NG-модель связывает действие и местоположение формы в представлении и объеме.
Затем кнопка отправки отключена. Его можно использовать только в том случае, если все данные формы являются законными. Если это незаконно, он будет отключен (ng-disablet = ”myform. $ Неверный»)
Наконец, данные отправляются в метод AddUser () модели, выполняется через атрибут NG-Submit.
3. Информация об проверке обратной связи формы
Для нас достаточно того, чтобы просто проверить форму, потому что пользователь смущен, потому что он не знает, почему произошла ошибка. Поэтому нам нужно обратить внимание на информацию пользователю, чтобы они могли понять, что заполнить
Сначала представьте классы, которые будут проверены в NG
Пользователь NG-Pristine не имеет интерактивных элементов, добавленных в этот класс
ng-dirty Пользователь взаимодействует с элементами, добавляется в этот класс
NG-VALID Результаты валидации Допустимые элементы добавляются в этот класс.
ng-invalid. Инвалидный элемент добавляется в этот класс
<! Doctype> <!-Использовать модуль-> <html ng-app = "exampleApp"> <Head> <Title> Angular Directive </title> <meta charset = "utf-8"/> <link rel = "stylesheet" type = "text/css" href = "css/boundptrap.min.css"> <lind relesheet "href =" css/boundptrap.min.css " type = "text/css" href = "css/bootstrap-theme.min.css"> <style>/*Интерактивный и требуемый стиль*/form.validate .ng invalid-required.ng-dirty {фоновый цвет: Orange; } /*Взаимодействие является незаконным стилем* / form .ng-invalid.ng-dirty {foanle-color: lightpink; } /*Электронная почта незаконна и взаимодействует с* / form.validate .ng-invalid-email.ng-dirty {foangy-color: lightgoldenrodyellow; } div.error {color: red; шрифт-вес: жирный шрифт; } div.summary.ng-valid {color: green; шрифт-вес: жирный шрифт; } div.summary.ng-invalid {color: red; шрифт-вес: жирный шрифт; } </style> </head> <body> <!-case: Difulational Data Binding-> <div ng-controller = "defaultctrl"> <!-novalidate = "novalidate" rast ng form verification-> <!-ng-submit = "adduser (newuser)" Добавить данные в модель-> <!-ng-class = "showvalidation? Легальная, ShowValidation верно, что запускает NG-класс для проверки-> <form name = "myform" novalidate = "novalidate" ng-submit = "adduser (newuser)" ng-class = "ShowValidation? 'Validate': '' "> <div> <div> <babel> Электронная почта: </label> <name =" email "type =" email "emody =" require "ng-model =" newuser.email "> <!-Послание версии-> <div> <!-Покажите информацию-> <span ng-class =" ng-show = "showvalidation"> <> <span ng-class = "ng-show =" {{getError (myform.email. $ error)}} </span> </div> </div> <button Type = "pospent"> ok </button> <div> Сообщение: {{сообщение}} <!-Когда Myform. $ Долинное валидация верно, ShowValidation является истинной, что приводит к NG-Class to ng-valid. ng-class = "myform. $ Действительно? 'ng-valid': 'ng-invalid' "> valive: {{myform. $ value}} </div> </form> </div> <script type =" text/javascript "src =" js/angular.min.js "> </script> <script type =" javascript "> // define a modul examplepappangular.module ("exampleApp", []) // Определение контроллера с именем defaultctrl .controller ('defaultctrl', function ($ scope) {// Добавить данные в модель $ scope.adduser = function (userdetails) {if myform. $ valive) {$ scope.message = userTails) {if MyForm. $) {$ scope.message = + ") (" + userdetails.agreed + ")"; (angular.isdefined (erry)) {if (error.required) {return "Пожалуйста, введите значение";Во -первых, определите стиль информации о обратной связи и стиль стиля формы в стиле
Затем напишите обратную связь с информацией, когда ошибка записана в JS
Наконец-то связывайте NG-класс в представлении
4. Свойства инструкции
1. Используйте входной элемент
<! Doctype> <!-Использовать модуль-> <html ng-app = "exampleApp"> <Head> <Title> Angular Directive </title> <meta charset = "utf-8"/> <link rel = "stylesheet" type = "text/css" href = "css/boundptrap.min.css"> <lind relesheet "href =" css/boundptrap.min.css " type = "text/css" href = "css/bootstrap-theme.min.css"> <style> </style> </head> <body> <div id = "todopanel" ng-controller = "defaultctrl"> <form name = "myform" nemoidate = "newalidate"> <div> <div> <div> <babel> text: <//nehficedate = "novalidate"> <div> <div> <dip> <babel>. ng-required = "requireValue" требуемое значение с помощью привязки данных-> <!-ng-minlength = "3" ng-maxlength = "10" максимальный и минимальный признаки, допущенные-> <!-ng-pattern = "matchpattern" Регулярное сопоставление-> <input name = "sample" ng-model = "inputVale" ng-requrequired = "ng-minleleny" = ng-minleleny "=" ng-minleleny "=" ng-minleleny "=" ng-minleleny = "ng-minleleny =" ng-minleleny "=" ng-model = ". ng-maxlength = "10" ng-pattern = "matchpattern"> </div> </div> <div> <!-требуется-> <p> Требуемая ошибка: {{myform.sample. $ error.required}} </p> <! ОШИБКА: {{myform.sample. $ Error.maxlength}} </p> <!-Сопоставьте только буквы с нижней части-> <p> Ошибка шаблона: {{myform.sample. $ Error.pattern}} </p> <!-подтвердите, что Legal-> <p> element Value: {{myform.sample. $ Allive} </p> </p> </p> </p div/p> </p> </p> </p> </p> </p> </p> </p> </p> </p> </p> </p> </p> </p> </p> </p> </p> </p> </p> </p> </p> </p> </p> </p> </p> </p> </p> </ptry. type = "text/javascript" src = "js/angular.min.js"> </script> <script type = "text/javascript"> // Определение модуля с именем exampleappangular.module ("Semeppleapp", []) // define a Controller с именем defaulctrl .controller ('default $ scope.requirevalue = true;2. Выберите список
<! Doctype> <!-Использовать модуль-> <html ng-app = "exampleApp"> <Head> <Title> Angular Directive </title> <meta charset = "utf-8"/> <link rel = "stylesheet" type = "text/css" href = "css/boundptrap.min.css"> <lind relesheet "href =" css/boundptrap.min.css " type = "text/css" href = "css/bootstrap-teme.min.css"> <style> </style> </head> <body> <div id = "todopanel" ng-controller = "defaultctrl"> <form name = "myform" nealiadate = "novalidate"> <div> <div> <div> <babel> selection> action stistemal: </labelse> </label-action stistemal: Sorts item.id как item. {{selectValue || "None"}} </p> </div> </form> </div> <script type = "text/javascript" src = "js/angular.min.js"> </script> <script type = "text/javascript"> // define модуль с именем examplepangular.module ("exampleApp",] //) defrler aemplor .controller ('defaultCtrl', function ($ scope) {// Модель данных $ scope.todos = [{id: 100, место: «Школа», действие: «Играть в мяч», полное: false}, {id: 200, место: «Домашняя», действие: «еда», полная: false}, {id: 300, место: «Дома», Action: «Смотрите ТВ»; }) </script> </body> </html>Выше всего содержание этой статьи. Я надеюсь, что это будет полезно для каждого обучения, и я надеюсь, что все будут поддерживать Wulin.com больше.