Угловые примеры

Создать собственный диспетчер задач с Angular просто

Простой диспетчер задач

Создание диспетчера задач — большая задача. Нам нужно разделить эту большую задачу на пару маленьких задач.

Сделаем пару моделей, сервис и компонент.

В каждом диспетчере задач есть календарь. В календаре есть недели, в неделях — дни, а в днях — задачи. Это будут наши модели.

Теперь у нас есть все модели для нашего проекта. Следующий шаг — создать сервис, который будет создавать месяц с неделями и днями.

Класс «Дата» дает нам всю необходимую информацию для начала, например индекс текущего месяца и текущий год. Основную логику мы поместим в метод «getMonth(monthNumber: number, year: number)».

В начале этого метода нам нужно создать новый месяц и инициализировать его, установить номер месяца, год, дни в месяце.

Далее нам нужно создать цикл по неделям (61 строка). В цикл по неделям нужно поставить еще цикл по дням (76 строчка).

В основном месяц не начинается с субботы. Нам нужно указать дни первой недели месяца из предыдущего месяца, это происходит в строке 67. В строке 68 мы определяем первый день месяца, затем мы используем функцию «getDay()», эта функция дает нам индекс дня недели. после этого мы делаем цикл, в котором мы создаем пустые дни предыдущего месяца.

Наши модели настроены, сервис, который даст нам месяц, тоже готов. Пришло время сделать компонент и показать пользователю календарь.

Компонент будет не очень большим. В нем мы просто делаем новую Задачу в выбранный день и переключаем месяц. Текущая реализация не сохраняет задачи в течение дня, для этого мы могли бы сделать сервис «TaskSaver» и сохранять задачи в файл json, а затем загружать.

Я думаю, что лучший способ показать календарь — это использовать таблицу. Каждая ячейка будет представлять день с задачами.

В итоге у нас получился неплохой таск-менеджер с календарем. Этот проект очень легко расширять и изменять, потому что он разделен на отдельные части, такие как модели, сервис и компонент.

Если вам нужно внимательно посмотреть на проект вот ссылка.

Первоначально опубликовано на http://tomorrowmeannever.wordpress.com 8 декабря 2019 г.