2021-04-09 08:42:54 +0200 +0200

Prskavčí blog

Jun 13, 2013

Jaký bude AngularJS 1.2?

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.