Angular Light — это самостоятельный клиентский MV(C/VM) фреймворк, который построен на идеях Angular.js и Knockout.js, и похож на упрощенный Angular.js
Основные изменения за последнее время:
- Поддержка «совеременных» браузеров без зависимостей (12kb): Google Chrome, Firefox, IE9+ (для IE8 нужен jQuery)
- Сделан модуль анимации, можно использовать CSS от Angular.js 1.2+
- Одноразовый биндинг — после получения первых данных $watch удаляется, для этого нужно дописать "::" в начало, например {{::variable}} вместо {{variable}}.
- Сохранение результирующего списка в директиве al-repeat, после применения фильтра исходный список может изменится и иногда нужно получить результат, например для определения кол-ва элементов или для вывода «список пуст». Использовать можно так:
al-repeat="item in list | filter store to variable"
, пример. - Появился «track by» для директивы al-repeat — способ идентификации элементов в списке, работает по аналогии ng-repeat из Angular.js
- Теги для al-app, позволяют делать биндинг разных частей DOM к одному scope. Бывает полезным когда на странице используется несколько разных фреймворков и не желательно «захватывать» весь документ, с помощью тегов приложение можно «раскидать» в разные места, пример.
- В ф-ии $watch появилось событие $finishBinding, оно срабатывает после того как произойдет биндинг. Это можно использовать в место timeout в директивах (или контроллерах :) ).
- Появилась возможность в любой момент сделать текстовую директиву статической с помощью env.finally()
Так же произведены оптимизации разных частей фреймворка, он потихоньку покрывается тестами — уже более 250 проверок, на данный момент фреймворк успешно используется в бою уже год.
Предыдущие статьи:
- «Ленивое» подключение директив и препроцессор
- Управляем декларативным биндингом данных в HTML
- Наследование директив
Автор: lega