Les directives sont des moyens fournis par Angular操作DOM
. Les instructions sont divisées en属性指令
et结构指令
.
Directive d'attribut : modifiez l'apparence ou le comportement d'un élément existant, enveloppez-le avec []
.
Instructions structurelles : ajoutez et supprimez des nœuds DOM pour modifier la disposition, utilisez *
comme préfixe d'instruction. [Tutoriels associés recommandés : "Tutoriel angulaire"]
1. Instruction intégrée
1.1 *ngIf
渲染
les nœuds DOM ou移除
les nœuds DOM en fonction des conditions.
<div *ngIf="data.length == 0">Plus de données</div>
<div *ngIf="data.length > 0 ; puis dataList else noData"></div> <ng-template #dataList>Liste des cours</ng-template> <ng-template #noData>Plus de données</ng-template>
ng-template
est utilisé pour définir des modèles Après avoir utilisé ng-template
pour définir un modèle, vous pouvez utiliser ng-container
et templateOutlet
pour l'utiliser.
<ng-template #loading> <button (click)="login()">se connecter</button> <button (click)="sigup()">sigup</button> </ng-template> <ng-container *ngTemplateOutlet="loading"> </ng-container>
1.2 [hidden]
显示
les nœuds DOM ou隐藏
les nœuds DOM (affichage) selon les conditions.
<div [hidden]="data.length == 0">Liste des cours</div> <div [hidden]="data.length > 0">Plus de données</div>
1.3 *ngFor
traverse les données pour générer
une interface de structure HTML List { identifiant : numéro nom : chaîne âge : nombre } liste : Liste[] = [ { identifiant : 1, nom : "Zhang San", âge : 20 }, { identifiant : 2, nom : "李思", âge : 30 } ]
<li *ngPour=" laisser un élément de liste ; soit je = indice ; soit isEven = pair ; soit isOdd = impair ; soit isFirst = premier ; soit isLast = dernier ; " > </li>
<li *ngFor="laisser l'élément de la liste; trackBy: identifier"></li>
identifier (index, élément){ retourner l'article.id ; }
2. Exigences relatives aux commandes personnalisées
: définissez la couleur d'arrière-plan par défaut pour l'élément, la couleur d'arrière-plan lorsque la souris entre et la couleur d'arrière-plan lorsque la souris sort.
<div [appHover]="{ bgColor: 'skyblue' }">Bonjour Angular</div>
import { AfterViewInit, Directive, ElementRef, HostListener, Input } depuis "@angular/core" // Options d'interface de type de paramètre de réception { bgColor? : chaîne } @Directif({ sélecteur : "[appHover]" }) la classe d'exportation HoverDirective implémente AfterViewInit { //Recevoir les paramètres @Input("appHover") appHover : Options = {} // Élément de nœud DOM sur lequel opérer : HTMLElement // Récupère le nœud DOM à opérer sur le constructeur (private elementRef : ElementRef) { this.element = this.elementRef.nativeElement } // Définit la couleur d'arrière-plan de l'élément après l'achèvement initial du modèle de composant ngAfterViewInit() { this.element.style.backgroundColor = this.appHover.bgColor || "bleu ciel" } // Ajout d'un événement de déplacement de souris à l'élément @HostListener("mouseenter") enter() { this.element.style.backgroundColor = "rose" } //Ajouter un événement de sortie de souris pour l'élément @HostListener("mouseleave") Leave() { this.element.style.backgroundColor = "skyblue" } }
Le rôle du pipeline est格式化组件模板数据
.
1.
Format
de
date
du
pipeline intégré
Devise Format de la devise majuscule Convertir en majuscule minuscule Convertir en minuscule json Formater les données json{{ date | date : "aaaa-MM-jj" }}
2. Exigences du pipeline personnalisé
: la chaîne spécifiée ne peut pas dépasser Longueur spécifiée
<!-- Ceci est un... --> {{'Ceci est un test' | résumé : 3}}
// résumé.pipe.ts importer { Pipe, PipeTransform } depuis '@angular/core' ; @Tuyau({ nom : 'résumé' }); classe d'exportation SummaryPipe implémente PipeTransform { transformation (valeur : chaîne, limite ? : nombre) { si (!value) renvoie null ; laissez actualLimit = (limite) ? limite : 50 ; return value.substr(0, actualLimit) + '...'; } }
// app.module.ts importer { SummaryPipe } depuis './summary.pipe' @NgModule({ déclarations : [ RésuméTuyau ] });