Beruflich Dokumente
Kultur Dokumente
com/
"../node_modules/bootstrap/dist/css/bootstrap.css",
"styles.scss"
Les components sont les composantes de base d'une application Angular : une application est une
arborescence de plusieurs components.
selector : il s'agit du nom qu'on utilisera comme balise HTML pour afficher ce component,
comme vous l'avez vu avec <app-root> . Ce nom doit être unique et ne doit pas être un nom
réservé HTML de type <div> , <body> etc. On utilisera donc très souvent un préfixe
comme app , par exemple ;
templateUrl : le chemin vers le code HTML à injecter ;
styleUrls : un array contenant un ou plusieurs chemins vers les feuilles de styles qui
concernent ce component ;
Créez un component
Exemple :
appareil.component.html
<li class="list-group-item">
<h4>Appareil : {{ appareilName }}-- Statut : {{ appareilStatus }}</h4> 1
<h4>Appareil : {{ appareilName }} -- Statut : {{ getStatus() }}</h4> 2
</li>
les doubles accolades {{ }} . Ce qui se trouve entre les doubles accolades correspond à l'expression TypeScript que
nous voulons afficher, l'expression la plus simple étant une variable. D'ailleurs, puisque la
variable appareilName n'existe pas encore, votre navigateur n'affiche rien à cet endroit pour l'instant. Ouvrez
maintenant appareil.component.ts
appareil.component.ts
constructor() { }
appareil.component.ts
Ajouter une méthode
getStatus() {
return this.appareilStatus;
}
app.component.TS
app.component.html
La propriété disabled permet de désactiver le bouton. Afin de lier cette propriété au TypeScript, il faut le mettre entre
crochets [] et l'associer à la variable.
Le point d'exclamation fait que le bouton est désactivé lorsque isAuth === false
méthode :
constructor() {
setTimeout(
() => {
this.isAuth = true;
}, 4000
);
}
}
créerez une timeout qui associe la valeur true à isAuth après 4 secondes (pour simuler, par exemple, le temps d'un
appel API).
Ajouter une fonctionnalité liée à l'événement "click" (déclenché quand l'utilisateur clique dessus)
app.component.TS
export class AppComponent {
isAuth = false;
constructor() {
app.component.HTML
<ul class="list-group">
<app-appareil [appareilName]="appareilOne" [appareilStatus]="'éteint'"></app-
appareil>
<app-appareil [appareilName]="appareilTwo" [appareilStatus]="'allumé'"></app-
appareil>
<app-appareil [appareilName]="appareilThree" [appareilStatus]="'éteint'"></app-
appareil>
</ul>
https://my-dream-app-f5994.firebaseio.com/
app.component.TS
@Input() appareilName: string;
@Input() appareilStatus: string;
Les Directives
Structurelles : *ngIf : pour afficher des données de façon conditionnelle
*ngFor : pour itérer des données dans un array, par exemple
<li class="list-group-item">
<div style="width:20px;height:20px;background-color:red;"
</li>
*ngFor
la directive *ngFor="let obj of myArray" à un component, Angular itérera l'array myArray et affichera un
component par objet obj
appareils = [
{
name: 'Machine à laver',
status: 'éteint'
},
{
name: 'Frigo',
status: 'allumé'
},
{
name: 'Ordinateur',
status: 'éteint'
}
];
Vous avez un array avec trois objets, chaque objet ayant une propriété name et une propriété status
<div class="container">
<div class="row">
<div class="col-xs-12">
<h2>Mes appareils</h2>
<ul class="list-group">
<app-appareil *ngFor="let appareil of appareils"
[appareilName]="appareil.name"
[appareilStatus]="appareil.status"></app-appareil>
</ul>
<button class="btn btn-success"
[disabled]="!isAuth"
(click)="onAllumer()">Tout allumer</button>
</div>
</div>
</div>
https://my-dream-app-f5994.firebaseio.com/
<router-outlet></router-outlet>
<div class="dropdown-menu">
<div class="dropdown-divider"></div>
<p class="text-danger">{{ errorMessage }}</p>
</div>