Saturday, September 12, 2015

Angular Light после Angular

Angular неприятно удивил меня своей сложностью в освоении "чуть больше чем пример на главной странице" и внутренней необычностью\избыточностью довольно сложной для освоения и понимания.

Поэтому естественно было потрачено некоторое время на поиск "серебряной пули", но другой.

После перебора и рассмотрения множества разных фреймворков (некоторые еще более странны, чем Ангуляр :), остановил своё внимание на Ангуляр Лайт. Который позиционируется, как более лёгкий для освоения, чем Ангуляр, более быстрый (пока не актуально для меня), позволяющий реализовать в коде задуманное быстрее, чем найти встроенное решение для Ангуляра.

Скачиваю, подключаю к проекту PixelSizeCalculator - тестовый проект для изучения Ангуляр.
История появления таково приложения такова - я выбирал новый монитор, с разрешением больше, чем FullHD, но с не очень большой диагональю. А так как выбор происходил в большей степени виртуально, ибо такие мониторы только под заказ, то хотелось оценить величину пиксела для каждой рассматриваемой комбинации разрешение-диагональ, чтобы сравнить с имеющимися в наличии/в доступе мониторами и ноутбуками. Поиск размеров пиксела по конкретным моделям мониторов зачастую не давал никакого результата. Производители просто не указывают данный параметр в тех характеристиках. Зато был найден код калькулятора для расчета примерного размера пиксела, который и был адаптирован в код JS приложения.
Скриншот приложения PixelSizeCalculator 

Меняем директивы с префикса ng- на al-. На удивление JS код практически не потребовал изменений, только удаление старого кода и переопределение названий функций. HTML код потребовал больших усилий, чтобы имплиментировать задуманное.

Итак, приложение работает. Но... приложение потеряло некоторый функционал - а именно:

  • не работает сортировка по столбам таблицы. В Ангуляр лайт al-repeat не поддерживает метод orderBy. Эта была та магия, которой меня поразил "большой" Ангуляр - сортировка работает из коробки, без всякого дополнительного кодирования с моей стороны. В Лайт даже пока не представляю, как  это надо будет реализовать.
  • не работает раскраска строк по цветам, точнее она работает, но нет полосатости. В "большом" ангуляр можно задать css класс строки в зависимости от логической переменной $odd ($first, $last, $even, $rest). В лайт надо сделать несколько дополнительных движений, чтобы реализовать это.
  • нет провайдера $http, очень мне понравилась реализация. Другие провайдеры тоже думаю интересные.
Таким образом, при упрощении фреймворка произошло и урезание функциональности. 
Выбор (как обычно) остаётся за разработчиком.

No comments: