Директивы AngularJS: ng-init, ng-app, ng-model и ng-repeat
Что такое директива в AngularJS?
A Директива в AngularJS — это команда, которая придает HTML новую функциональность. Когда Angular просматривает HTML-код, он сначала находит директивы на странице, а затем соответствующим образом анализирует HTML-страницу. Простой пример директивы AngularJS, который мы видели в предыдущих главах, — это «директива ng-model». Эта директива используется для привязки нашей модели данных к нашему представлению.
Примечание: Вы можете разместить базовый код angular на HTML-странице с помощью директив ng-init, ng-repeat и ng-model без необходимости иметь контроллеры. Логика этих директив находится в файле Angular.js, предоставленном Google. Контроллеры — это конструкции Angular программирования следующего уровня, которые позволяют использовать бизнес-логику, но, как уже упоминалось, для того, чтобы приложение было приложением Angular, не обязательно иметь контроллер.
Как создавать директивы в AngularJS
Как мы определили во введении, директивы AngularJS — это способ расширить функциональность HTML.
В файле определены 4 директивы. AngularJS.
Ниже приведен список директив AngularJS вместе с примерами, объясняющими каждую из них.
ng-приложение в AngularJS
Это используется для инициализации приложения Angular.JS. Когда эта директива присутствует на HTML-странице, она по сути сообщает Angular, что эта HTML-страница является приложением angular.js.
Пример np-приложения
В примере ниже показано, как использовать директиву ng-app. В этом примере мы просто покажем, как превратить обычное HTML-приложение в приложение angularJS.
<!DOCTYPE html> <html> <head> <meta chrset="UTF 8"> <title>Event Registration</title> </head> <body> <script src="https://code.angularjs.org/1.6.9/angular-route.js"></script> <script src="https://code.angularjs.org/1.6.9/angular.js"></script> <script src="https://code.angularjs.org/1.6.9/angular.min.js"></script> <script src="https://code.jquery.com/jquery-3.3.1.min.js"></script> <h1> Guru99 Global Event</h1> <div ng-app=""> Tutorial Name : {{ "Angular" + "JS"}} </div> </body> </html>
Пояснение к коду:
- Директива «ng-app» добавляется в наш тег div, чтобы указать, что это приложение является приложением angular.js. Обратите внимание, что директиву ng-app можно применить к любому тегу, поэтому ее также можно поместить в тег body.
- Поскольку мы определили это приложение как приложение angular.js, теперь мы можем использовать функциональность angular.js. В нашем случае мы используем выражения для простого объединения двух строк.
Если код выполнен успешно, при запуске кода в браузере будет отображен следующий вывод.
Вывод:
Вывод ясно показывает вывод выражения, которое стало возможным только потому, что мы определили приложение как приложение angularjs.
ng-init в AngularJS
Это используется для инициализации данных приложения. Иногда вам могут потребоваться некоторые локальные данные для вашего приложения, это можно сделать с помощью директивы ng-init.
Пример ng-init
В примере ниже показано, как использовать директиву ng-init.
В этом примере мы собираемся создать переменную с именем «TutorialName», используя директиву ng-init, и отобразить значение этой переменной на странице.
<!DOCTYPE html> <html> <head> <meta chrset="UTF 8"> <title>Event Registration</title> </head> <body> <script src="https://code.angularjs.org/1.6.9/angular-route.js"></script> <script src="https://code.angularjs.org/1.6.9/angular.js"></script> <script src="https://code.angularjs.org/1.6.9/angular.min.js"></script> <script src="https://code.jquery.com/jquery-3.3.1.min.js"></script> <h1> Guru99 Global Event</h1> <div ng-app="" ng-init="TutorialName='Angular JS'"> Tutorial Name : {{ TutorialName}} </div> </body> </html>
Пояснение к коду:
- Директива ng-init добавляется в наш тег div для определения локальной переменной с именем «TutorialName», и ей присваивается значение «AngularJS».
- Мы используем выражения в AngularJs для отображения вывода имени переменной «TutorialName», которое было определено в нашей директиве ng-init.
Если код выполнен успешно, при запуске кода в браузере будет отображен следующий вывод.
Вывод:
На выходе
- Результат ясно показывает вывод выражения, содержащего строку «AngularJS». Это связано с тем, что строка «AngularJS» присвоена переменной «TutorialName» в разделе ng-init.
ng-модель в AngularJS
И, наконец, у нас есть директива ng-model, которая используется для привязки значения HTML-элемента управления к данным приложения. В примере ниже показано, как использовать директиву ng-model.
Пример ng-модели
В этом примере
- Мы собираемся создать две переменные, называемые «количество» и «цена». Эти переменные будут привязаны к двум элементам управления текстовым вводом.
- Затем мы собираемся отобразить общую сумму на основе умножения значений цены и количества.
<!DOCTYPE html> <html> <head> <meta chrset="UTF 8"> <title>Event Registration</title> </head> <body> <script src="https://code.angularjs.org/1.6.9/angular-route.js"></script> <script src="https://code.angularjs.org/1.6.9/angular.js"></script> <script src="https://code.angularjs.org/1.6.9/angular.min.js"></script> <script src="https://code.jquery.com/jquery-3.3.1.min.js"></script> <h1> Guru99 Global Event</h1> <div ng-app="" ng-init="quantity=1;price=5"> People : <input type="number" ng-model="quantity"> Registration Price : <input type="number" ng-model="price"> Total : {{quantity * price}} </div> </body> </html>
Пояснение к коду:
- Директива ng-init добавляется в наш тег div для определения двух локальных переменных; одно называется «количество», а другое — «цена».
- Теперь мы используем директиву ng-model для привязки текстовых полей «Люди» и «Цена регистрации» к нашим локальным переменным «количество» и «цена» соответственно.
- Наконец, мы показываем итоговую сумму через выражение, которое представляет собой умножение переменных количества и цены.
Если код выполнен успешно, при запуске кода в браузере будет отображен следующий вывод.
Вывод:
- Вывод ясно показывает умножение значений «Люди» и «Цена регистрации».
Теперь, если вы перейдете в текстовые поля и измените значение цены «Люди» и «Регистрация», общая сумма автоматически изменится.
- Приведенный выше вывод просто показывает мощь привязки данных в angularJs, которая достигается с использованием метода директива ng-модели.
ng-повтор в AngularJS
Используется для повторения элемента HTML. В примере ниже показано, как использовать директива ng-repeat.
Пример ng-repeat
В этом примере
- У нас будет массив названий глав в переменной массива и
- затем используйте директиву ng-repeat, чтобы отобразить каждый элемент массива как элемент списка.
<!DOCTYPE html> <html> <head> <meta chrset="UTF 8"> <title>Event Registration</title> </head> <body> <script src="https://code.angularjs.org/1.6.9/angular-route.js"></script> <script src="https://code.angularjs.org/1.6.9/angular.js"></script> <script src="https://code.angularjs.org/1.6.9/angular.min.js"></script> <script src="https://code.jquery.com/jquery-3.3.1.min.js"></script> <h1> Guru99 Global Event</h1> <div ng-app="" ng-init="chapters=['Controllers','Models','Filters']"> <ul> <li ng-repeat="names in chapters"> {{names}} </li> </ul> </div> </body> </html>
Пояснение к коду:
- Директива ng-init добавляется в наш тег div для определения переменной под названием «chapters», которая представляет собой переменную массива, содержащую 3 строки.
- Элемент ng-repeat используется путем объявления встроенной переменной с именем «names» и обработки каждого элемента массива Chapters.
- Наконец, мы показываем значение локальной встроенной переменной «names».
Если код выполнен успешно, при запуске кода в браузере будет отображен следующий вывод.
Вывод:
- Приведенный выше вывод просто показывает, что директива ng-repeat взяла каждое значение в массиве, называемом «главы», и создала элементы списка HTML для каждого элемента в массиве.
Резюме
- Директивы используются для расширения функциональности HTML. Angular предоставляет встроенные директивы, такие как
- ng-app — используется для инициализации приложения Angular.
- ng-init – используется для создания переменных приложения.
- ng-model — используется для привязки элементов управления HTML к данным приложения.
- ng-repeat — используется для повторения элементов с использованием angular.