Académique Documents
Professionnel Documents
Culture Documents
@Component({
selector: 'app-root',
templateUrl: './app.component.html',
styleUrls: ['./app.component.css']
})
export class AppComponent {
title = 'FirstApp';
}
Structure d’un projet
@Component({
selector: ’app-root’,
templateUrl: ’./app.component.html’,
styleUrls: [’./app.component.css’] })
export class AppComponent {
title = ’cours-angular’;
personne: Personne = new Personne(100, ‘Ahmed’, ’ALAOUI’ };
}
app.component.ts
app.component.html
<ul>
<li> Nom : {{ personne.nom }} </li>
<li> Prénom : {{ personne.prenom }} </li>
</ul>
DATA Binding
app.component.ts
@Component({
selector: ’app-root’,
templateUrl: ’./app.component.html’,
styleUrls: [’./app.component.css’] })
export class AppComponent {
title = ’cours-angular’;
personne: Personne = new Personne(100, ‘Ahmed’, ’ALAOUI’ };
}
app.component.html
<ul>
<li> Nom : {{ personne.nom }} </li>
<li> Prénom : {{ personne.prenom }} </li>
</ul>
{{ personne }} affichera [Object Object ]
{{ personne | json }} affichera
{ "num": 100, "nom": "Ahmed", "prenom": »ALAOUI" }
DATA Binding
app.component.ts
@Component({
selector: ’app-root’,
templateUrl: ’./app.component.html’,
styleUrls: [’./app.component.css’] })
export class AppComponent {
direBonjour(): string {
return ’bonjour Angular’;
}
}
app.component.html
{{direBonjour() }}
DATA Binding
o Pour utiliser la directive ngModel, il est nécessaire d’importer le
module FormsModule de Angular dans le app.module.ts.
…
import {FormsModule} from "@angular/forms";
@NgModule({
declarations: [
…
],
imports: [
BrowserModule,
FormsModule
],
providers: [],
bootstrap: [AppComponent]
})
export class AppModule { }
DATA Binding
o Angular fournit des directives spécifiques aux formulaires que
vous pouvez utiliser pour lier les données d'entrée du formulaire et
le modèle.
o Pour utiliser la directive ngModel, il est nécessaire d’importer le
module FormsModule de Angular dans le app.module.ts.
o Utiliser les directives de forme angulaire
comme ngModel, ngModelGroup et ngForm.
o Ajouter la validation à l'aide de validateurs intégrés.
o Afficher les erreurs de validation de manière significative.
o Gérer la soumission du formulaire à l'aide de ngSubmit.
DATA Binding
export class User {
id: number; email: string;
password: { pwd: string; confirmPwd: string; };
gender: string; terms: boolean;
constructor(values: Object = {}) {
Object.assign(this, values);
}
}
User.ts
DATA Binding
export class User {
id: number; email: string;
password: { pwd: string; confirmPwd: string; };
gender: string; terms: boolean;
constructor(values: Object = {}) {
Object.assign(this, values);
}
}
User.ts Authentification.Component.ts
export class SignupFormComponent implements OnInit
{
private user:User;
ngOnInit() {
this.user = new User({
email:"",
password: { pwd: "" , confirm_pwd: ""},
gender:"",
terms: false
});
}
}
DATA Binding
Authentification.Component.ts Authentification.Component.html
export class
SignupFormComponent
implements OnInit {
private user:User;
ngOnInit() {
this.user = new User({ <label for="select">
email:"", Gender
password: { </label>
pwd: "" , <select id="select">
confirm_pwd: "" <option value="Male">M</option>
}, <option value="Female">F</option>
gender: "", </select>
terms: false
});
}
}
DATA Binding
Authentification.Component.ts Authentification.Component.html
export class SignupFormComponent
implements OnInit {
private user:User;
private gender: string[];
ngOnInit() { <label for="select">
this.gender = Gender
['Male', 'Female']; </label>
this.user = new User({ <select id="select">
email:"", <option *ngFor = "let g of genders"
password: { [value] = "g">
pwd: "" , {{g}}
confirm_pwd: "" </option>
}, </select>
gender: "",
terms: false
});
}
}
DATA Binding
o Généralement, il faudrait lier les données du formulaire à l'objet de
classe utilisateur.
o Lorsque vous entrez les données dans le formulaire, un nouvel
objet Utilisateur soit créé pour stocker ces données
temporairement.
o Garder la vue synchronisée avec le modèle, et cela s'appelle la
liaison.
o plusieurs façons pour le réaliser : ngModel et ngForm.
DATA Binding
o ngForm et ngModel sont des directives angulaires essentielles à la
création de formulaires pilotés par des modèles.
o La directive NgForm complète l'élément form avec des
fonctionnalités supplémentaires.
o Il fournit les contrôles que vous avez créés pour les éléments avec
une directive ngModel et un attribut name et surveille leurs
propriétés, y compris leur validité.
o Également, Il possède sa propre propriété valid qui n'est vraie
que si tous les contrôles contenus sont valides.
DATA Binding
<form
class="form-horizontal"
#signupForm = "ngForm">
…
</form>
o #signupForm est une variable de référence de modèle qui fait
référence à la directive ngForm qui contrôle la totalité du
formulaire.
DATA Binding
<form
class="form-horizontal"
#signupForm = "ngForm">
…
</form>
o #signupForm est une variable de référence de modèle qui fait
référence à la directive ngForm qui contrôle la totalité du
formulaire.
<button
type="submit"
class="btn btn-success"
[disabled]="!signupForm.form.valid"> Envoyer </button>
DATA Binding
o La liaison du modèle et du modèle à travers ngModel dispose de
trois syntaxes différentes l’assurer:
[(ngModel)] [ngModel] ngModel
DATA Binding : [(ngModel)]
o [(ngModel)] effectue une liaison bidirectionnelle pour la
lecture/écriture des valeurs de contrôle d'entrée.
o Si la directive [(ngModel)] est utilisée, le champ d'entrée prend
une valeur initiale dans la classe du composant et la remet à jour à
chaque modification de la valeur du contrôle d'entrée.
export class signupFormComponent{
<form #signupForm="ngForm"> private user:User;
<input type="text" name="email" …
…
[(ngModel)] = "user.email" this.user= new User
id="inputEmail" ({email:"admin@test.ma",…});
name="email"
… …
> }
Directives Angular
o Plusieurs directives sont possibles:
• *ngFor
• *ngIf
• *ngSwitch
• ngStyle
• ngClass
o S’utilisent conjointement avec :
• ng-container
• ng-template
Directives Angular
o Plusieurs directives sont possibles:
• *ngFor
<!-- Afficher le tableau tab en utilisant *ngFor -->
• *ngIf <ul>
<li *ngFor="let elt of tab">
• *ngSwitch {{ elt }}
</li>
• ngStyle </ul>
• ngClass
o S’utilisent conjointement avec :
• ng-container
• ng-template
Directives Angular
o Plusieurs directives sont possibles:
• *ngFor
<!-- Afficher le tableau tab en utilisant *ngFor -->
• *ngIf <ul>
<li *ngFor="let elt of tab" ; let i = index >
• *ngSwitch {{i}}:{{ elt }}
</li>
• ngStyle </ul> index as i
• ngClass
o S’utilisent conjointement avec :
• ng-container
• ng-template
Directives Angular
o Plusieurs directives sont possibles:
• *ngFor
<ul>
• *ngIf <li *ngIf="tab[0] % 2 != 0">
{{ tab[0] }} est impair
• *ngSwitch </li>
</ul>
• ngStyle
• ngClass
o S’utilisent conjointement avec :
• ng-container
• ng-template
Directives Angular
o Plusieurs directives sont possibles:
<ul>
• *ngFor <li *ngIf="tab[0] % 2 != 0; then si else sinon">
Ce code ne sera jamais pris en compte
• *ngIf </li>
<ng-template #si>
• *ngSwitch <li>
{{ tab[0] }} est impair
• ngStyle </li>
</ng-template>
• ngClass
<ng-template #sinon>
o S’utilisent conjointement avec : <li>
{{ tab[0] }} est pair
</li>
• ng-container
</ng-template>
• ng-template </ul>