Pokud sledujete dění kolem frameworku AngularJS tak jste jistě zaznamenali, že se pracuje na nové verzi 1.2, která je teď blízko k dokončení. V masteru mají dnes verzi pojmenovanou jako verzi 1.1.8 a brzy se snad dočkáme finální verze. Zkusím zde popsat nejdůležitější věci z prezentace na meetupu 11.6. co prezentovali Igor Minár a Brad Green.
ng-animate
Deklarativní animace pro aplikace v Angularu. Podpora pro CSS animace a přechody s možností fallbacku pomocí JS. Pro vlastní animace je dobré použít některou s knihoven pro CSS animace (Greensock.js, Animate.css, Custom CSS3 Keyframes). Direktiva se stará o práci s DOMem, nastavuje potřebné třídy a timing, také zabraňuje vnořeným animacím.
$http
Měla by být přidána podpora pro blob a authentication (metoda withCredentials). Budete si moci více nastavit XSRF header a názvy cookie. Přidá se podpora pro zrušení requestů a podpora pro around interceptors.
Around interceptors se dají dobře využít například při authentication, asynchronní zpracování request/response a práci s chybami. Například chcete provést request a server vrátí, že vypršela session a pomocí interceptoru vyvoláte přihlášení a potom pokračuje původní request.
$resource
Více konfiguračních nastavení (hlavičky, url), api bude vylepšené o podporu promise a měli by být k dispozici i interceptory.
$route a ngView
Separátní moduly, rozšíření o možnost zachycení všech parametrů a přidána podpora pro animace.
when('/users/:userId/params/*params/'
ngRepeat
V této snad nejpotřebnější direktivě je přidána podpora pro animace, potom je možnost opakovat sadu elementů (multi-element repeater) pomocí ng-repeat-start a ng-repeat-end a v neposlední řadě podpora track by paramteru, kdy se dá kontrolovat asociace mezi modelem a DOMem.
Controller as
Tato konstrukce nám umožní jednoduší zápis a není potřeba používat v controlleru $scope (samozřejmě pokud ho nepotřebujete např. při $watch()).
<body ng-controller="DemoController as demo">
<tr ng-repeat="student in demo.students">
<td>{{student.name}}</td>
</tr>
</body>
function DemoController() {
this.students = [ ... ]
}
ng-if
Tato direktiva přejatá z projektu AngularUI umožňuje udělat podmínku na kompilaci části šablony a reší některé problémy, které se nadali zvládnout pomocí ngShow a ngHide.
Expressions
Podpora pro nové operátory: ===, !==, ? Konečně lze napsat:
ng-class="loggedIn ? 'user': 'anonym'"
ngTouch
Podpora pro touch eventy v ngClick a ngSwipe.
Shrnutí
Přibude jestě několik vylepšení pro bezpečnost (CSP) a vylepší error hlášky, také by se měla zlepšit dokumentace a bude interaktivní tutorial. Dema a detaily najdete také ve videu na youtube.