Académique Documents
Professionnel Documents
Culture Documents
Généralement d’une manière abstraite une application angular est une boite qui
collecte ces éléments.
Une application angular est définie par un ensemble des modules et elle a
toujours au moins un module racine (app.module.ts) qui permet le
démarrage, et a généralement beaucoup plus de modules de fonctionnalités.
Figure 3: app.module.ts
Par la suite le diagramme suivant montre comment ces pièces de base sont
liées :
b) Les components :
Les components sont les composantes de base d'une application Angular : une
application est une arborescence de plusieurs components.
Tout d'abord, AppComponent est notre component principal : tous les autres
components de notre application seront emboîtés dans celui-ci.
selector :
Il s'agit du nom qu'on utilisera comme balise HTML pour afficher
ce component,
Comme on a vu avec <app-root>, ce nom doit être unique et ne doit
pas être un nom réservé HTML de type <div> , <body>,.. .
templateUrl :
C’est le chemin vers le code HTML à injecter.
Généralement on utilise templateUrl qui permet d’associer un
fichier externe HTML contenant la structure de la vue du
composant.
Mais il est possible aussi d’utiliser template qui permet de définir
à l’intérieur du décorateur le code HTML représentant la vue du
composant.
styleUrls : c’est un array contenant un ou plusieurs chemins vers les
feuilles de styles qui concernent ce component.
ng g c componentName
Exercice :
1. Créer un composant book et faire l’appeler dans app.componant.html.
d) Déclaration du composant :
Après la génération d’un composant Angular , il faut le déclarer dans le
module (app.module.ts) , pour cela on doit déclarer le nouveau composant dans
app.module.ts :
3. Data Binding :
L'intérêt d'utiliser Angular est de pouvoir gérer le DOM (Document Object Model
: les éléments HTML affichés par le navigateur) de manière dynamique, et pour
cela, il faut utiliser la liaison de données, ou "databinding".
Avec l'interpolation, nous pouvons afficher la valeur d'une propriété dans la vue
d'un template, entre deux accolades, comme ceci : {{ maPropriete }}
5. Remplacer le titre statique d’un livre par une propriété title dans
book.component.ts et faire l’appeler à l’aide de l’interpolation.
Le fait que la propriété interpolée soit mise à jour dans le code ts,
automatiquement Angular va le mettre à jour dans le template, cela s'appelle le
binding unidirectionnel.
b) Property binding :
La liaison par propriété ou "property binding" est une autre façon de créer de
la communication dynamique entre la partie TypeScript et le template , plutôt
qu'afficher simplement le contenu d'une variable .
On utilise les parenthèses () pour créer une liaison à un événement, par la suite
le fait de cliquer sur le bouton acheter va le désactiver sachant que la propriété
isAvailable est initialisée à true et la méthode setAvailable lié au click va
l’inverser chaque fois.
d) Two-way binding :
La liaison à double sens (ou two-way binding) utilise la liaison par propriété et
la liaison par événement en même temps, on l'utilise, par exemple, pour les
formulaires, afin de pouvoir déclarer et de récupérer le contenu des champs,
entre autres.
4. Les directives :
Une directive est une classe permettant d’attacher un comportement aux
éléments du DOM. Elle est décorée avec l’annotation @Directive.
La commande pour créer une directive est :
ng g d directiveName
ngStyle :
10. Cette fois on va appliquer des classes Bootstrap à la balise <li> en fonction
du la disponibilité de livre :
o La classe : list-group-item-success si la variable isAvailable égale à true.
o La classe : list-group-item-danger si la variable isAvailable égale à false.
b) Les directives structurelles :
Les "Structural Directives" permettent de manipuler le DOM en ajoutant
ou en retirant des éléments.
Les "Structural Directives" natives les plus utilisées sont ngIf et ngFor.
Les "Structural Directives" sont généralement utilisées en préfixant les
directives par un astérisque :
*ngIf :
Un component auquel on ajoute la directive *ngIf="condition" ne s'affichera que
si la condition est "truthy" (elle retourne la valeur true où la variable
mentionnée est définie et non-null), comme un statement if classique.
11. Pour une démonstration simple, ajouter une <div> rouge qui ne s'affichera
que si le livre est non disponible et autre verte qui ne s'affichera que si le
livre est disponible.
*ngFor :
Nous avons un array avec trois objets, chaque objet ayant une propriété title et
une propriété isAvailable. Nous pourrions même créer une interface ou une
class Typescript Book, mais dans ce cas simple ce n'est pas nécessaire.