anchor.diff:  }
   ----
   
  -TIP: Vous avez surement fait attention à la ligne en commentaire tout en haut du code source. C'est la référence au fichier de définitions qui permet à votre IDE de faire l'auto-complétion en TypeScript. Ici la CLI tsd à centraliser l'ensemble des références dans un fichier tsd.d.ts. Il vous suffit ensuite d'ajouter cette référence dans n'importe quel fichier TypeScript pour accéder à l'ensemble de la complétion. C'est plutôt pratique, mais attention à ne pas mélanger l'utilisation des bibliothèques clients et serveurs dans votre code quand vous faite du node.js !
  +TIP: Vous avez surement fait attention à la ligne en commentaire tout en haut du code source. C'est la référence au fichier de définitions qui permettent à votre *IDE* de faire l'auto-complétion en TypeScript. Ici la CLI tsd à centraliser l'ensemble des références dans un fichier _tsd.d.ts_. Il vous suffit ensuite d'ajouter cette référence dans n'importe quel fichier TypeScript pour accéder à l'ensemble de la complétion. C'est plutôt pratique, mais attention à ne pas mélanger l'utilisation des bibliothèques clients et serveurs dans votre code quand vous faites du node.js !
   
   == Les composants
  -Angular2 a enterré plusieurs concepts important du framework. Les deux principaux pour moi sont le Scope et le Controller. Il est possible de trouver une explication logique a cette suppression. Quant on développait un controlleur Angular avec la première version il y avait une ambiguité entre les pattern https://en.wikipedia.org/wiki/Model%E2%80%93view%E2%80%93controller[MVC] et https://en.wikipedia.org/wiki/Model_View_ViewModel[MVVM]. D'un côté le controlleur traitait des actions mais d'un autre on utilisait le Scope pour faire le binding two way. Malheureusement le mélange de ces deux concepts créer pas mal de confusion et même si il est possible de les faire cohabiter, le mieux reste encore de les séparer clairement. Dans Angular2 plus d'ambiguité, nous avons à disposition les Components et on peut dire qu'il fonctionne comme des ViewModels. Certains ne seront peut-être pas d'accord avec mon analyse, mais on va dire que ce point de vue n'engage que moi ;)
  -
  -Afin de rester bien organiser, ajoutez un répertoire components toujours dans :
  +Angular2 a enterré plusieurs concepts important du framework. Les deux principaux pour moi sont le *Scope* et le *Controller*. Il est possible de trouver une explication logique à cette suppression. Quant on développait un contrôleur Angular avec la première version il y avait une ambiguïté entre les pattern https://en.wikipedia.org/wiki/Model%E2%80%93view%E2%80%93controller[MVC] et https://en.wikipedia.org/wiki/Model_View_ViewModel[MVVM]. D'un côté le contrôleur traitait des actions mais d'un autre on utilisait le Scope pour faire le *binding two way*. Malheureusement le mélange de ces deux concepts créer pas mal de confusion et même s'il est possible de les faire cohabiter, le mieux reste encore de les séparer clairement. Dans Angular2 plus d'ambiguïté, nous avons à disposition les *Components* et on peut dire qu'il fonctionne comme des ViewModels. Certains ne seront peut-être pas d'accord avec mon analyse, mais on va dire que ce point de vue n'engage que moi ;)
  +
  +Afin de rester bien organiser, ajoutez un répertoire _components_ toujours dans :
   ----
   public/javascripts/app
   ----
  
positive.code: }
  ----
  
  La logique du composant est maintenant opérationnelle mais en l'état il ne peut pas fonctionner. Il faut le décorer avec deux annotations : @Component et @View. La première va nous permettre de définir le selector (le tag qui permet à angular d'identifier le composant à utiliser dans une vue) et les services à utiliser. La seconde apporte des informations sur le template et les directives à utiliser par le composant.
  
  NOTE: Les directives n'ont pas disparu dans Angular2 et elle permettent toujours de manipuler le DOM.
  
  
negative.code: import {Injectable, Inject} from 'angular2/angular2';
  ----
  
  L'annotation _Injectable_ va permettre de décorer la classe pour qu'elle puisse être injectée, _Inject_ quant à lui permet de préciser l'injection direct d'une dépendance. Les annotations doivent être préfixées par un *@* et précédées l'élément décoré. Pour rendre la classe injectable il faut donc écrire :
  
  [source,javascript]
  ----
  