Додайте комбінації клавіш у свій кутовий додаток

Комбінації клавіш - це дуже зручна функція для користувачів. Це дозволяє їм робити речі без багатьох кліків, збільшуючи продуктивність. Обробку клавіатурних скорочень можна легко додати до програм Angular за допомогою бібліотеки гарячих клавіш angular2.

свій

У цій статті ми напишемо додаток для відстеження дієти, який дозволяє користувачам вводити калорії, з’їдені за певний день. Вони можуть використовувати комбінації клавіш, щоб відкрити модальний спосіб додати запис, а також видалити останній запис. Для запуску проекту ми встановлюємо Angular CLI, запускаючи npm i -g @ angular/cli. Далі ми запускаємо Angular CLI для створення проекту, набравши:

У майстрі налаштування ми вирішили включити маршрутизацію та використовувати SCSS як наш препроцесор CSS.

Потім ми встановлюємо кілька пакетів. Нам потрібен пакет гарячих клавіш angular2, про який ми згадали вище, Ngx-Bootstrap для стилізації, а також MobX для зберігання даних у спільному сховищі. Щоб встановити їх, ми запускаємо:

Далі ми створюємо наші компоненти та послуги. Для цього ми запускаємо:

Тепер ми готові написати якийсь код. У дієті-form.component.html ми замінюємо існуючий код на:

Ми додаємо форму, щоб дозволити користувачам вводити дату, яку вони з’їли, і кількість з’їдених калорій в даний день. Ми використовуємо перевірку форми, керовану шаблоном Angular, щоб перевірити, чи все заповнене, переконатися, що дата вказана у форматі РРРР-ММ-ДД, а також перевірити, чи є кількість калорій невід’ємним числом. У нас також є кнопка Зберегти, щоб зберегти дані при натисканні. Ця форма використовується як для додавання, так і для редагування записів.

Далі в дієтичній формі.component.ts ми замінюємо існуючий код на:

Цей файл має функції, які ми називали в попередньому шаблоні, наприклад функцію збереження. У нас також є входи для отримання даних з домашньої сторінки, а також вихідні дані для передачі збереженої події на домашню сторінку. Оскільки ми використовуємо форму для редагування, нам також потрібно передати вибраний запис із введеною вибраною калорією, щоб його можна було редагувати. Щоб оновити об’єкт форми зі значеннями selectedCalorie, ми скопіювали значення, коли змінюється вхід selectedCalorie.

У функції збереження ми перевіряємо форму та викликаємо різні функції для збереження залежно від того, чи використовується форма для додавання чи редагування запису. Останні записи будуть заповнені в нашому магазині MobX, викликавши функцію getCaloriesEaten, і збережена подія буде видана, як тільки це буде зроблено.

Далі на домашній сторінці.component.html ми замінюємо код на:

Це створює кнопки для додавання, редагування та видалення записів, а також таблицю для відображення записів. Крім того, у нас є способи додавання та редагування записів, які ми відкриваємо кнопками Додати та Редагувати відповідно.

Далі на home-page.component.ts ми замінюємо існуючий код на:

У нас є функції openAddModal та openEditModal, щоб відкрити модалі Add і Edit. Функція closeModals призначена для закриття модалів, коли речі зберігаються в компоненті app-diet-form. Функція deleteCaloriesEaten призначена для видалення калорій, а getCaloriesEaten використовується для отримання записів при завантаженні сторінки та видаленні елементів. Він також розміщує товари в нашому магазині, щоб кожен компонент мав до нього доступ.

У нас також є функція addHotKeys для додавання гарячих клавіш до нашого додатку для зручності користувачів. HotKeyService - з бібліотеки angular2-hotkeys. Ми вводимо його, а потім визначаємо гарячі клавіші. Ми визначили Ctrl + Shift + A, щоб відкрити доданий модаль, і комбінацію Ctrl + Shift + D, щоб видалити перший запис у списку. Повернення хибного висловлення у зворотному виклику полягає у запобіганні появі подій.

У app-routing.module.ts ми помістили:

Це дозволяє користувачам бачити щойно додані сторінки, коли вони натискають посилання або вводять URL-адреси.

Далі в app.component.html ставимо:

Це додає посилання на наші сторінки та відкриває маршрутизатор, щоб користувачі могли бачити наші сторінки.

Потім у app.component.scss додаємо:

Це додає відступ до наших сторінок і змінює колір нашої панелі навігації Bootstrap.

У app.module.ts ми замінюємо існуючий код на:

Це додає наші компоненти, послуги та бібліотеки, які ми використовуємо в нашому додатку.

У калорію.ts додаємо:

Це додає типи до нашої моделі калорійності.

Потім у dietStore.ts додаємо:

Це створює магазин MobX для отримання наших компонентів та обміну даними. Кожного разу, коли ми називаємо this.store.setCalories у наших компонентах, ми встановлюємо дані про калорії в цьому магазині, оскільки перед цим ми додали декоратор @action. Коли ми називаємо this.store.calories у нашому коді компонента, ми завжди отримуємо останнє значення цього магазину, оскільки він має декоратор @observable.

Тоді в diet.service.ts ми замінюємо існуючий код на:

Це робиться для того, щоб ми могли надсилати запити HTTP до нашого серверного сервера для отримання, збереження та видалення записів користувача.

Далі в середовищі environment.prod.ts та environment.ts ми замінюємо існуючий код на:

Це додає URL-адресу нашого API.

Нарешті, в index.html ми замінюємо код на:

додати в наш додаток залежності Bootstrap CSS та JavaScript, а також змінити заголовок.

Після всієї роботи ми можемо запустити ng serve для запуску програми.

Щоб розпочати задній кінець, ми спочатку встановлюємо пакет json-server, запустивши npm i json-server. Потім перейдіть до нашої папки проекту та запустіть: