L’ultima versione di AngularJS è la 2.1.0, vediamo cosa è cambiato rispetto alla versione 1.
La nuova versione di AngularJS è stata totalmente riscritta e non risulta compatibile con le applicazioni sviluppate con la versione precedente, è quindi necessario fare il porting se si vuole passare dalla versione 1 alla 2 in applicazioni già esistenti.
Comunque per andare incontro alla comunità di utilizzatori di AngularJS, è stato reso disponibile un modulo, ngUpgrade, che permette la coesistenza di AngularJS 1 e 2 nello stesso progetto.
Vediamo le principali novità.
I componenti sostituiscono integralmente gli scope e i controller della versione 1, che sono stati completamente eliminati nella versione 2. Tutte le web application che utilizzano Angular 2 devono essere strutturate in componenti.
Non è più supportato il costrutto angular.module(), sostituito dai componenti e dai costrutti ad oggetti definiti nel linguaggio scelto (ad esempio TypeScript).
Al fine di migliorare le performance globali del framework, il data binding unidirezionale (tramite {{variabile}}) è stato reso il default al posto del bidirezionale (two way) anche se quest’ultimo può comunque essere utilizzato.
Il binding bidirezionale è definito mediante il costrutto ngModel, ad esempio
<input type="text" [(ngModel)]="nome"/>
identifica il two way binding sulla variabile nome.
È inoltre possibile definire il binding su eventi tramite parentesi tonde, ad esempio (click)=”funzione()” definisce il binding dell’evento click.
Angular supporta i decorator TypeScript e le annotation AtScript, per definire dei meta dati. Ad esempio una annotation di un componente su una classe mia classe ha la forma:
@Component({
selector: 'miaclasse',
template: '<p>{{paragrafo}}</p>'
})
export class MiaClasse{
paragrafo = 'Hello World!';
}
Anche se i linguaggi supportati sono Javascript, Dart e TypeScript, è consigliato l’utilizzo di quest’ultimo perché, oltre ad essere compatibile con JavaScript, Angular stesso è scritto in TypeScript ed è utilizzato per gli esempi della documentazione ufficiale.
Tool a linea di comando basato su NodeJS che aiuta gli sviluppatori Angular.
Il tool è installabile tramite npm e può essere utilizzato per creare la struttura di un nuovo progetto o per generare template di componenti o servizi.