Blue Flower

Chercher

1.1. APIs $watch

AngularJS synchronise les données entre le modèle  et la vue, met à jour les composants de la vue lorsque le modèle  correspondant change et vice versa; c'est le two-way data binding. Pour cela, il utilise les APIs $watch pour observer tous les changements de toutes les variables au sein de chaque scope. Si la valeur d'une variable change dans un scope, automatiquement ce changement est répercuté dans la vue. En effet tout ce qui est lié à l'UI (User Interface) et qui utilise des directives crée automatiquement un $watch.

1.2. APIs $digest

$digest représente la boucle "digest loop"; quand AngularJS fait appel à $digest  on a le changement automatique des variables par "two-way data-binding". AngularJS traite donc en boucle, au sein du scope courant et ses descendants, tous les "watchers" enregistrés dans le scope jusqu'à ce que le modèle de données à traiter  soit stabilisé. Une fois que le boucle digest est complètement exécuté, le browser retourne le DOM qui contient  les modifications réalisées.
Par défaut, chaque variable d'un scope est observé dans AngularJS. Le traitement au sein d'un scope de chaque variable par two-way data-binding, même celles qui ne sont pas concernées par aucune modification, ralentit l'application. Pour éviter cela, dans AngularJS 1.3 on introduit la notion de liaison dans un seul sens (on-way data binding). 

(à suivre)


2. One-way data binding

Avec le concept One-way data binding AngularJS n'observe pas une expression ou une variable si celle-ci n'est pas  concernée par le traitement en cours. Pour cela, on  précède la variable de :: dans les templates pour qu'on ait le On-way data-binding" . Ainsi le  variable précédé de "::" ne sera pas scrutée pour tout  changement  qui ne le concerne pas.

(à suivre)


3. Injection de dépendance

3.1. Présentation

L'injection de dépendance (DI) est un concept généralement utilisé en ingénierie logicielle et je vous invite à regarder la définition sur Wikipedia.
Dans AngularJS il existe trois cas où un composant (objet ou fonction) peut être concerné par l'injection de dépendance:

  1. Le composant peut créer la dépendance lui même  en utilisant l'opérateur "new".
  2. Le composant peut chercher l'injection de dépendance en se référant  à une variable globale.
  3. Le composant peut solliciter l'injection de dépendance lorsqu'il en a besoin.

Les deux premières façons permettant l'injection de dépendance ne sont pas recommandables car elles n'offrent pas des conditions optimales d'utilisation; en effet, dans ces deux façons de faire on ne permet pas au système de gérer lui même les dépendances en fonction des besoins et cela  peut poser des problèmes.
La troisième façon est la plus fiable car le système s'occupe de la DI lui même et ainsi il peut l'optimiser. 

Un système d'Injection de Dépendances a donc pour rôle de créer un composant, de résoudre ses dépendances et de l'injecter lorsqu'il est nécessaire à un autre composant. Ainsi, chaque application, ou page de l'application dit au DI ce dont elle a besoin et l'on n'est pas obligé d'intégrer manuellement tous les morceaux de code que l'on va utiliser.

3.2. Exemples d'utilisation

(à suivre)

précédent