AngularJS

Framework pour client Javascript

Analyse

1.x

AngularJS implémente les concepts de :

  • Service
  • Contrôleur
  • Vue
  • Directive

Directive

Une directive est définie par :

  • Une fonction d'injection
  • Une fonction de compilation (compile)
  • Une fonction de liaison (link)

Injection

Les directives définissent des composants HTML, définis par :

  • Une éventuelle restriction sur la manière dont ce composant peut-être instancié : Element, Attribut, Classe... ou une plusieurs d'entre eux
  • Un template contenant la structure HTML sous-jacente au composant. Il peut s'agir du contenu lui-même ou d'un lien (templateUrl) pointant vers lui.
  • Une éventuelle description de scope, initialisé sous la forme : scopeValue: '=param'
  • D'éventuelles autres dépendances (require) dont le contrôleur est à injecter. Cela sera typiquement d'autres directives, y compris celle définissant un ngModel.
  • Un contrôleur
  • Le fait de wrapper son contenu (transclude) ou non
  • Une éventuelle priorité si la directive est en concurrence avec d'autres.

Liaison

La fonction de liaison, qui reçoit l'élément et les attributs de celui-ci, est typiquement utilisée pour mettre à jour l'état du template.

Scope

La fonction de liaison est celle qui reçoit le scope. Il peut s'agir du scope du contrôleur où a été instanciée la directive (par défaut), ou d'un scope indépendant, propre à la directive (recommandé pour les composants).

Par défaut il s'agit d'une post-liaison, c'est-à-dire qu'elle est appelée sur un élément fils, puis sur son parent. Définir une pré-liaison permet d'avoir l'inverse (parent d'abord, puis fils)

2.x

Angular

Implémentation

Service

module.service(serviceName, initFn)

Contrôleur

module.controller(ctrlName, initFn)