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)
Implémentation
Service
module.service(serviceName, initFn)
Contrôleur
module.controller(ctrlName, initFn)