Директиви AngularJS ng-click, ng-show і ng-hide
⚡ Розумний підсумок
Події AngularJS дозволяють вебзастосунку реагувати на введення користувача, таке як клацання миші, натискання клавіш та наведення курсора. Директиви, такі як ng-click, ng-show та ng-hide, декларативно пов'язують цю поведінку в розмітці, а не через ручні DOM-слухачі.

Події AngularJS
Події AngularJS – це функції, які дозволяють веб-застосункам взаємодіяти з вводом користувача, таким як клацання миші, введення з клавіатури та наведення курсора миші. Події повинні оброблятися у веб-застосунках для виконання певних завдань та дій, і кожна з них запускається, коли користувач виконує відповідну дію.
Під час створення вебзастосунків рано чи пізно вашій програмі потрібно обробляти події DOM, такі як клацання та переміщення миші, натискання клавіш та події змін. AngularJS надає директиви, які декларативно обробляють ці події.
Наприклад, якщо кнопка на сторінці має обробляти щось при натисканні, директива події ng-click забезпечує цей перехоплювач.
⚠️ Повідомлення служби підтримки: Досягнуто AngularJS кінець терміну служби 31 грудня 2021 року і не отримує жодних подальших виправлень чи виправлень безпеки від команди Angular. Наведені нижче директиви залишаються точними для підтримки існуючих програм AngularJS 1.x; для нової роботи використовуйте сучасні Angular, де ці директиви замінюються прив'язками подій, такими як (click) і *ngIf.
Що таке директива ng-click в AngularJS?
Команда «Директива ng-click» В AngularJS застосовується власна поведінка при натисканні на елемент HTML. Зазвичай вона використовується на кнопках, оскільки це найпоширеніше місце для прикріплення відповідей на клік, а також використовується для виклику сповіщень про клік.
Синтаксис ng-click в AngularJS
<element ng-click="expression"> </element>
Приклад ng-click в AngularJS
У цьому прикладі ng-click змінна лічильника збільшується щоразу, коли користувач натискає кнопку.
<!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title>Event Registration</title> </head> <body ng-app=""> <script src="https://code.angularjs.org/1.8.3/angular.js"></script> <h1>Guru99 Global Event</h1> <button ng-click="count = count + 1" ng-init="count=0"> Increment </button> <div>The Current Count is {{count}}</div> </body> </html>
Code Пояснення:
- Директива ng-init встановлює локальну змінну
countв 0. - Директива ng-click на кнопці збільшує значення
countна 1 за кожен клік. - Інтерполяція
{{count}}відображає поточне значення користувачеві.
вихід:
Відображається кнопка «Збільшити», і лічильник спочатку дорівнює нулю. Натискання на неї збільшує значення, як показано на зображенні нижче.
Що таке директива ng-show в AngularJS?
Команда Директива ng-show показує або приховує задане HTML елемент на основі виразу, переданого атрибуту ng-show. Внутрішньо елемент відображається або приховується шляхом видалення або додавання .ng-hide CSS-клас, попередньо визначений клас, який встановлює display до none.
Синтаксис ng-show в AngularJS
<element ng-show="expression"> </element>
Приклад ng-show в AngularJS
У цьому прикладі використовується ng-show для відображення прихованого елемента.
<!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title>Event Registration</title> </head> <body> <script src="https://code.angularjs.org/1.8.3/angular.js"></script> <h1>Guru99 Global Event</h1> <div ng-app="DemoApp" ng-controller="DemoController"> <input type="button" value="Show Angular" ng-click="ShowHide()"/> <br><br><div ng-show="IsVisible">Angular</div> </div> <script type="text/javascript"> var app = angular.module('DemoApp', []); app.controller('DemoController', function($scope) { $scope.IsVisible = false; $scope.ShowHide = function() { $scope.IsVisible = true; }; }); </script> </body> </html>
Code Пояснення:
- Директива ng-click на кнопці посилається на
ShowHideфункція, визначена в контролеріDemoController. - Атрибут ng-show додається до div, що містить текст Angular. Це елемент, видимість якого контролюється.
- У контролері,
IsVisibleЗмінна-член розміщується на об'єкті області видимості та ініціалізується якfalse, тому div приховується під час першого завантаження сторінки. За допомогою ng-show значення правда відображає елемент і false приховує це. - Команда
ShowHideнабори функційIsVisibleзначення true, щоб div став видимим.
вихід:
Div, що містить текст, спочатку не відображається, оскільки IsVisible починається як хибне. Клацання Показати кутовий встановлює значення «true», і текст стає видимим.
Що таке директива ng-hide в AngularJS?
Команда директива ng-hide приховує елемент, коли його вираз має значення TRUE, та показує елемент, коли вираз має значення FALSE — повна інверсія до ng-show. Внутрішньо він використовує те саме .ng-hide Клас CSS.
Синтаксис ng-hide в AngularJS
<element ng-hide="expression"> </element>
Приклад ng-hide в AngularJS
Цей приклад відображає приклад ng-show, тому дві директиви можна порівняти безпосередньо.
<!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title>Event Registration</title> </head> <body> <script src="https://code.angularjs.org/1.8.3/angular.js"></script> <h1>Guru99 Global Event</h1> <div ng-app="DemoApp" ng-controller="DemoController"> <input type="button" value="Hide Angular" ng-click="ShowHide()"/> <br><br><div ng-hide="IsVisible">Angular</div> </div> <script type="text/javascript"> var app = angular.module('DemoApp', []); app.controller('DemoController', function($scope) { $scope.IsVisible = false; $scope.ShowHide = function() { $scope.IsVisible = true; }; }); </script> </body> </html>
Code Пояснення:
- Директива ng-click на кнопці посилається на
ShowHideфункція вDemoController. - Команда ng-hide Атрибут прикріплюється до div, що містить текст Angular.
IsVisibleініціалізується доfalseОскільки це ng-hide, а не ng-show, значення false означає, що div видимий коли сторінка вперше завантажується.- Команда
ShowHideнабори функційIsVisibleдо значення true, що приховує div.
вихід:
Спочатку відображається div, оскільки до ng-hide передається значення false. Клацання Приховати кутовий стає істинним, і слово зникає.
ng-show проти ng-hide проти ng-if: ключові відмінності
Три директиви контролюють, чи бачить користувач елемент, і вибір між ними впливає як на поведінку, так і на продуктивність рендерингу. Перші дві лише перемикають клас CSS, тому елемент завжди присутній на сторінці; третя додає та видаляє сам елемент.
| Аспект | нг-шоу | ng-hide | ng-if |
|---|---|---|---|
| Елемент видно, коли | Вираз істинний | Вираз хибний | Вираз істинний |
| Елемент у DOM | Always | Always | Тільки поки це правда |
| Використаний метод | TogglКлас es .ng-hide | TogglКлас es .ng-hide | Створює та руйнує елемент |
| Дочірня область видимості | Спільне використання батьківської області видимості | Спільне використання батьківської області видимості | Створює нову дочірню область видимості |
| Спостерігачі, коли вони приховані | Все ще активний | Все ще активний | Вилучено |
| Найкраще для | Часте перемикання легкого контенту | Інвертовані умови | Важкий контент відображається рідко |
Використовуйте ng-show або ng-hide, коли елемент часто перемикається, оскільки елемент ніколи не перебудовується, а перемикання коштує лише зміни класу. Використовуйте ng-if для ресурсомістких секцій, які відображаються рідко, оскільки видалення елемента також видаляє його спостерігачі та зменшує вартість дайджесту на кожному циклі.
Директиви слухача подій AngularJS
Ви можете додати слухачі подій AngularJS до елементів HTML, використовуючи один або декілька з цих директиви:
- нг-розмиття
- ng-зміна
- ng-клацніть
- ng-копія
- нг-вирізати
- ng-dblclick
- нг-фокус
- ng-клавіатура
- ng-клавіатура
- ng-keyup
- ng-mousedown
- ng-mouseenter
- ng-mouseleave
- ng-mousemove
- ng-наведення миші
- ng-mouseup
- нг-паста
- ng-подати
Кожна директива приймає вираз, а необроблена подія браузера доступна всередині нього як $event коли обробнику потрібні такі деталі, як натиснута клавіша або координати кліку.









