Pull to refresh

Comments 15

На сайте же есть: angularlight.org/doc/advantages.html

— Angular Light easier than Angular.js
— No excess details like dependency Injection, services…
— If you use jQuery, then aLight can be more convenient than Angular.js
— Easy making directives
— Inheritance of directives
— An able to control a declarative data binding in the HTML, text-directives
>> If you use jQuery, then aLight can be more convenient than Angular.js

Какое-то довольно странное преимущество. Вроде как мы хотим всеми силами сбежать с императивщины, а тут говорят «No problem, use jQuery».
jQuery можно использовать по разному, я часто слышал рекомендацию не использовать jQuery, хотя она во всю используется, например в популярной библиотеке angular-ui, да что там, jQuery используется даже на оф. сайте angular.js
Да и зачем отказываться от такой богатой «коллекции» полезных библиотек. Такие компоненты как datepicker и select2 у меня попадают чуть ли не в каждый проект.
Я считаю, что если «применять голову», то с jQuery можно получить профит (не навредив).
>> хотя она во всю используется, например в популярной библиотеке angular-ui

На сайте angular-bootstrap (который входит в angular-ui) прямо написано, что jQuery и BootstrapJS не требуется. Т.о. уж по крайней мере datepicker обходится без jQuery.

>> у меня попадают чуть ли не в каждый проект.

На моем последнем проекте нет ни jQuery, ни Bootstrap. Доволен как слон.

>> Я считаю, что если «применять голову», то с jQuery можно получить профит (не навредив).

Если есть jQuery всегда есть желание сделать что-то по-старому на jQuery =)
С появлением декларативных фреймворков jQuery — это уже deprecated. Логика вся делается с декларативным подходом и проще, и понятнее, и поддерживаемее. По сути для jQuery осталась только ниша визуальных эффектов. Которая со временем должна будет переместиться в область применения CSS. Да и уже есть всякие клевые штуки типа ng-animate. По мне так, если можно не использовать jQuery, то нужно уже сейчас это начинать делать.
А я за процедурный подход. Если у вас много логики отображения то декларативный подход всё только усложняет.
Всему своё место и назначение, а то что происходит вокруг Angular больше на моду похоже. ИМХО
В Angular Light из Angular.js взяты самые необходимые вещи: директивы, 2-х сторонее связывание, scope, оставив «за бортом» модули, сервисы, провайдеры и т.п. Это позволяет строить свою архитектуру приложения, более простое встраивание в готовые приложения (что приближает Angular Light к библиотеке), а кому-то они просто не нравятся, так же, меньше компонентов фреймворка которые нужно изучать — более низкий порог входа.
Директивы (в минимальном варианте) — это просто ф-ии вызываемые в момент биндинга куда передается элемент (немного похоже на биндинги в Knockout.js), что позволяет делать директивы без глубокого вникания в фреймворк.
Тут описаны некоторые отличия.

Если сравнивать техническую часть самих фреймворков, то не думаю что Angular Light чем то особо уступает, а такие вещи как текстовые директивы дают дополнительные интересные кейсы которых нет в «полном» Angular.
Я всё же думаю что href= надо оставлять, хотя бы для поисковых роботов. HTML5 конечно даёт простор для разнообразия, но тут можно нарушить логику построения. Хотя это личное дело каждого, но как минимум читать такие линки труднее.
Angular.JS очень мощная и удобная платформа для построения веб-приложений. Думаю что раз что-то кажется вам в нём ненужным — вероятно вы просто не знаете как это применить. Не в коем случае с вами не спорю, наоборот это хорошо что вы делаете что-то для себя и для других людей, это лишь моё личное мнение. В компании где я работаю зачастую мы добавляем что-то в angular, потому что нам реально многого нехватает, к примеру таких вещей как ng-enter, focus и др.
В интернете можно найти много негатива о Angular.js, для неё делают оболочки над созданием директив и контроллеров, пишут статьи типа «как все же сделать директиву», попадаются такие (глупые?) моменты которые нужно учитывать, громкие статьи на подобии этой — это все говорит что не всем все нравиться (не все идеально).
Ещё есть такая популярная картинка, с провалами на графике
image

А Angular Light — это одна из альтернатив, коих много. То что разные разработчики используют Angular Light, говорит о том что он для кого-то полезен.
Кривая обучения неоднозначна да, но тем не менее удобнее angular-a не встречал.
Попробую Light на новом проекте — там нужно быстро сделать прототип без заморочек, поэтому он там подойдет кмк.
PS «нравиться» — tsya.ru
Можно ссылок на альернативы накидать?
Тут есть некоторый перечень, кстати vuejs разрабатывается разработчиком из Google, т.е. в самом гугле Angular.js не всем нравится.
Не видел раньше этот проект. Недавно столкнулся с необходимостью выбрать для себя что-то из Backbone/Ember/Knockout/Angular и был неприятно удивлен перегруженностью Ангуляра, Эмбера и неизучаемостью Бэкбона. Выбрал Нокаут. В принципе все получилось, но наелся я с ним порядком, а некоторые вещи без грязнейших хаков не удалось сделать. Так что в следующем проекте обязательно опробую AL.
В чем принципиальная разница между контроллером и директивой?
Можно ли наследовать контроллеры, чтобы на базе одного создавать новый?
Есть ли методы (события) для взаимодействия контроллеров?
Технически, контроллер — это просто ф-ия, и директива по функционалу его перекрывает, поэтому можно в качестве контроллера можно использовать директиву, например: todo на контроллере, todo на директиве, разницы особо нет, но с директивой появляется возможность указать приоритет, необходимость дочернего scope, и т.п.

Наследовать контроллеры не приходилось, как вариант можно вызвать родительский контроллер, после чего переопределить необходимые методы в scope, пример. Хотя ничего не мешает использовать какую-нибудь развесистую систему наследования и при необходимости переопределить метод alight.getController.

Методов взаимодействия нет, можно использовать какие-нибудь pubsub библиотеки, которых, готовых уже достаточно.
Sign up to leave a comment.

Articles