Table des matières
1. Directive DirectiveDirective
2.   管道 Pipe
3.  服务 Service
Maison interface Web js tutoriel Une analyse approfondie des directives, des tuyaux et des services dans Angular

Une analyse approfondie des directives, des tuyaux et des services dans Angular

Sep 18, 2021 am 10:58 AM
angular 指令 服务 管道

Que sont les instructions, les tuyaux et les services dans Angular ? L'article suivant vous présentera les instructions, les pipelines et les services de Angular. J'espère qu'il vous sera utile !

Une analyse approfondie des directives, des tuyaux et des services dans Angular

1. Directive DirectiveDirective

指令是 Angular 提供的操作 DOM 的途径。指令分为属性指令和结构指令。【相关教程推荐:《angular教程》】

属性指令:修改现有元素的外观或行为,使用 [] 包裹。

结构指令:增加、删除 DOM 节点以修改布局,使用*作为指令前缀

1.1 内置指令

1.1.1 *ngIf

根据条件渲染 DOM 节点或移除 DOM 节点

<div *ngIf="data.length == 0">没有更多数据</div>
Copier après la connexion
<div *ngIf="data.length > 0; then dataList else noData"></div>
<ng-template #dataList>课程列表</ng-template>
<ng-template #noData>没有更多数据</ng-template>
Copier après la connexion

1.1.2 [hidden]

根据条件显示 DOM 节点或隐藏 DOM 节点 (display)

<div [hidden]="data.length === 0">没有更多数据</div>
Copier après la connexion

1.1.3 *ngFor

遍历数据生成HTML结构

interface List {
  id: number
  name: string
  age: number
}

list: List[] = [
  { id: 1, name: "张三", age: 20 },
  { id: 2, name: "李四", age: 30 }
]
Copier après la connexion
<!--  
    i: 索引
    isEven: 是否为偶数行
    isOdd: 是否为奇数行
    isFirst: 是否是第一项
    isLast: 是否是最后一项
-->
<li
    *ngFor="
      let item of list; 
      let i = index;
      let isEven = even;
      let isOdd = odd;
      let isFirst = first;
      let isLast = last;
    "
></li>
Copier après la connexion
<li *ngFor="let item of list; trackBy: identify"></li>
Copier après la connexion
identify(index, item){
  return item.id; 
}
Copier après la connexion

1.2 自定义指令

需求:为元素设置默认背景颜色,鼠标移入时的背景颜色以及移出时的背景颜色

<div [appHover]="{ bgColor: &#39;skyblue&#39; }">Hello Angular</div>
Copier après la connexion
  • 创建自定义指令

$ ng g d appHover
# 全称 ng generate directive
Copier après la connexion
import { AfterViewInit, Directive, ElementRef, HostListener, Input } from "@angular/core"

// 接收参的数类型
interface Options {
  bgColor?: string
}

@Directive({
  selector: "[appHover]"
})
export class HoverDirective implements AfterViewInit {
  // 接收参数
  @Input("appHover") appHover: Options = {}
  // 要操作的 DOM 节点
  element: HTMLElement
  // 获取要操作的 DOM 节点
  constructor(private elementRef: ElementRef) {
    this.element = this.elementRef.nativeElement
  }
  // 组件模板初始完成后设置元素的背景颜色
  ngAfterViewInit() {
    this.element.style.backgroundColor = this.appHover.bgColor || "skyblue"
  }
  // 为元素添加鼠标移入事件
  @HostListener("mouseenter") enter() {
    this.element.style.backgroundColor = "pink"
  }
  // 为元素添加鼠标移出事件
  @HostListener("mouseleave") leave() {
    this.element.style.backgroundColor = "skyblue"
  }
}
Copier après la connexion

2. 管道 Pipe

管道的作用是格式化组件模板数据。

2.1 内置管道

  • date 日期格式化

  • currency 货币格式化

  • uppercase 转大写

  • lowercase 转小写

  • json 格式化json 数据

<p>{{ date | date: "yyyy-MM-dd" }}</p>
Copier après la connexion

2.2 自定义管道

需求:指定字符串不能超过规定的长度

// summary.pipe.ts
import { Pipe, PipeTransform } from &#39;@angular/core&#39;;

@Pipe({
   name: &#39;summary&#39; 
});
export class SummaryPipe implements PipeTransform {
    transform (value: string, limit?: number) {
        if (!value) return null;
        let actualLimit = (limit) ? limit : 10;
        return value.substr(0, actualLimit) + &#39;...&#39;;
    }
}
Copier après la connexion
// app.module.ts
import { SummaryPipe } from &#39;./summary.pipe&#39;
@NgModule({
    declarations: [SummaryPipe] 
});
Copier après la connexion

3. 服务 Service

Directive est le moyen fourni par Angular pour faire fonctionner le DOM. Les instructions sont divisées en instructions d'attribut et instructions de structure. [Tutoriels associés recommandés : "

Tutoriel angulaire"]Instructions d'attribut : modifiez l'apparence ou le comportement des éléments existants et utilisez [] pour les envelopper.

Instructions structurelles : ajoutez et supprimez des nœuds DOM pour modifier la disposition, utilisez * comme préfixe d'instruction

1.1 Instructions intégrées
  • 1.1 .1 *ngIf
  • Render les nœuds DOM ou supprimer les nœuds DOM selon les conditions
  • $ ng g s services/TestService --skip-tests
    Copier après la connexion
    import { Injectable } from &#39;@angular/core&#39;;
    
    @Injectable({
      providedIn: &#39;root&#39;
    })
    export class TestService { }
    Copier après la connexion
  • 1.1 .2 [hidden]

Afficher les nœuds DOM ou masquer les nœuds DOM selon les conditions (affichage)
export class AppComponent {
  constructor (private testService: TestService) {}
}
Copier après la connexion


1.1.3 *ngFor

Parcourez les données pour générer la structure HTML
import { Injectable } from &#39;@angular/core&#39;;

@Injectable({
  providedIn: &#39;root&#39;
})

export class CarListService {
}
Copier après la connexion
import { Injectable } from &#39;@angular/core&#39;;
import { CarModule } from &#39;./car.module&#39;;

@Injectable({
  providedIn: CarModule,
})

export class CarListService {
}
Copier après la connexion
import { CarListService } from &#39;./car-list.service&#39;;

@NgModule({
  providers: [CarListService],
})
export class CarModule {
}
Copier après la connexion
import { Component } from &#39;@angular/core&#39;;
import { CarListService } from &#39;../car-list.service.ts&#39;

@Component({
  selector:    &#39;app-car-list&#39;,
  templateUrl: &#39;./car-list.component.html&#39;,
  providers:  [ CarListService ]
})
Copier après la connexion

1.2 Instructions personnalisées

🎜🎜🎜Exigences : Définissez la couleur d'arrière-plan par défaut pour l'élément, le couleur d'arrière-plan lorsque la souris entre et la couleur d'arrière-plan lorsque la souris sort Couleur d'arrière-plan🎜rrreee🎜🎜🎜Créer des instructions personnalisées🎜🎜🎜rrreeerrreee
🎜🎜2. 🎜Le rôle du canal est de formater les données du modèle de composant. 🎜🎜🎜🎜2.1 Pipeline intégré🎜🎜🎜🎜🎜🎜date Formatage de la date🎜🎜🎜🎜devise Formatage de la devise🎜🎜🎜🎜majuscule Convertir en majuscules 🎜🎜🎜🎜minuscules Convertir en minuscules 🎜🎜🎜🎜json Formater les données json 🎜🎜🎜rrreee🎜🎜🎜2.2 Personnalisé Pipeline🎜🎜🎜🎜Exigences : La chaîne spécifiée ne peut pas dépasser la longueur spécifiée🎜rrreeerrreee🎜🎜3 ServiceService🎜🎜🎜🎜🎜3.1 Créer un service🎜🎜🎜rrreeerrreeerrreee🎜3.2 Portée du service🎜 🎜 Utilisation Les services facilitent le partage de données entre modules et composants, en fonction de la portée du service. 🎜🎜🎜🎜Enregistrez le service dans l'injecteur racine, tous les modules utilisent le même objet d'instance de service🎜rrreee🎜🎜🎜Enregistrez le service au niveau du module, tous les composants du module utilisent le même objet d'instance de service🎜rrreeerrreee🎜🎜🎜Dans le service d'enregistrement au niveau du composant, ce composant et ses sous-composants utilisent le même objet d'instance de service🎜rrreee🎜🎜🎜🎜Adresse originale : https://juejin.cn/post/7008357218210807838🎜🎜🎜Auteur : Qianyi_0810🎜🎜🎜Plus pour connaissances liées à la programmation, veuillez visiter : 🎜Vidéo de programmation🎜 ! ! 🎜

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn

Outils d'IA chauds

Undresser.AI Undress

Undresser.AI Undress

Application basée sur l'IA pour créer des photos de nu réalistes

AI Clothes Remover

AI Clothes Remover

Outil d'IA en ligne pour supprimer les vêtements des photos.

Undress AI Tool

Undress AI Tool

Images de déshabillage gratuites

Clothoff.io

Clothoff.io

Dissolvant de vêtements AI

AI Hentai Generator

AI Hentai Generator

Générez AI Hentai gratuitement.

Outils chauds

Bloc-notes++7.3.1

Bloc-notes++7.3.1

Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise

SublimeText3 version chinoise

Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1

Envoyer Studio 13.0.1

Puissant environnement de développement intégré PHP

Dreamweaver CS6

Dreamweaver CS6

Outils de développement Web visuel

SublimeText3 version Mac

SublimeText3 version Mac

Logiciel d'édition de code au niveau de Dieu (SublimeText3)

Comment obtenir des objets à l'aide de commandes dans Terraria ? -Comment collecter des objets dans Terraria ? Comment obtenir des objets à l'aide de commandes dans Terraria ? -Comment collecter des objets dans Terraria ? Mar 19, 2024 am 08:13 AM

Comment obtenir des objets à l'aide de commandes dans Terraria ? 1. Quelle est la commande pour donner des objets dans Terraria ? Dans le jeu Terraria, donner des commandes à des objets est une fonction très pratique. Grâce à cette commande, les joueurs peuvent obtenir directement les objets dont ils ont besoin sans avoir à combattre des monstres ou à se téléporter vers un certain endroit. Cela peut grandement faire gagner du temps, améliorer l’efficacité du jeu et permettre aux joueurs de se concentrer davantage sur l’exploration et la construction du monde. Dans l’ensemble, cette fonctionnalité rend l’expérience de jeu plus fluide et plus agréable. 2. Comment utiliser Terraria pour donner des commandes d'objets 1. Ouvrez le jeu et entrez dans l'interface du jeu. 2. Appuyez sur la touche "Entrée" du clavier pour ouvrir la fenêtre de discussion. 3. Entrez le format de commande dans la fenêtre de discussion : "/give[player name][item ID][itemQuantity]".

Solution au service Windows 10 Security Center désactivé Solution au service Windows 10 Security Center désactivé Jul 16, 2023 pm 01:17 PM

Le service Security Center est une fonction de protection informatique intégrée au système Win10, qui peut protéger la sécurité de l'ordinateur en temps réel. Cependant, certains utilisateurs rencontrent une situation dans laquelle le service Security Center est désactivé lors du démarrage de l'ordinateur. C'est très simple. Vous pouvez ouvrir le panneau de service, rechercher l'élément SecurityCenter, puis cliquer avec le bouton droit pour ouvrir sa fenêtre de propriétés, définir le type de démarrage sur automatique, puis cliquer sur Démarrer pour redémarrer le service. Que faire si le service Win10 Security Center est désactivé : 1. Appuyez sur "Win+R" pour ouvrir la fenêtre "Opération". 2. Entrez ensuite la commande "services.msc" et appuyez sur Entrée. 3. Recherchez ensuite l'élément "SecurityCenter" dans la fenêtre de droite et double-cliquez dessus pour ouvrir sa fenêtre de propriétés.

Comment installer Angular sur Ubuntu 24.04 Comment installer Angular sur Ubuntu 24.04 Mar 23, 2024 pm 12:20 PM

Angular.js est une plateforme JavaScript librement accessible pour créer des applications dynamiques. Il vous permet d'exprimer rapidement et clairement divers aspects de votre application en étendant la syntaxe HTML en tant que langage de modèle. Angular.js fournit une gamme d'outils pour vous aider à écrire, mettre à jour et tester votre code. De plus, il offre de nombreuses fonctionnalités telles que le routage et la gestion des formulaires. Ce guide expliquera comment installer Angular sur Ubuntu24. Tout d’abord, vous devez installer Node.js. Node.js est un environnement d'exécution JavaScript basé sur le moteur ChromeV8 qui vous permet d'exécuter du code JavaScript côté serveur. Être à Ub

Comment utiliser des tubes pour lire et écrire des fichiers dans Golang ? Comment utiliser des tubes pour lire et écrire des fichiers dans Golang ? Jun 04, 2024 am 10:22 AM

Lecture et écriture de fichiers via des canaux : créez un canal pour lire les données du fichier et les transmettre via le canal. Recevez les données du canal et traitez-les. Écrivez les données traitées dans le fichier. Utilisez des goroutines pour effectuer ces opérations simultanément afin d'améliorer les performances.

Comment ouvrir le service de connexion Bureau à distance à l'aide de la commande Comment ouvrir le service de connexion Bureau à distance à l'aide de la commande Dec 31, 2023 am 10:38 AM

La connexion au bureau à distance a apporté de la commodité à la vie quotidienne de nombreux utilisateurs. Certaines personnes souhaitent utiliser des commandes pour se connecter à distance, ce qui est plus pratique à utiliser. Alors, comment se connecter ? Le service de connexion Bureau à distance peut vous aider à résoudre ce problème en utilisant une commande pour l'ouvrir. Comment configurer la commande de connexion au bureau à distance : Méthode 1. Connectez-vous à distance en exécutant la commande 1. Appuyez sur "Win+R" pour ouvrir "Exécuter" et entrez mstsc2, puis cliquez sur "Afficher les options" 3. Entrez l'adresse IP et cliquez sur "Connecter". 4. Cela montrera qu’il est en train de se connecter. Méthode 2 : Connectez-vous à distance via l'invite de commande 1. Appuyez sur « Win+R » pour ouvrir « Exécuter » et entrez cmd2 Dans l'« Invite de commandes », entrez mstsc/v:192.168.1.250/console.

Comment activer le service audio dans Win7 Comment activer le service audio dans Win7 Jul 10, 2023 pm 05:13 PM

Les ordinateurs disposent de nombreux services système pour prendre en charge l'application de divers programmes. Si l'ordinateur n'a pas de son et que la plupart des services audio ne sont pas activés après le dépannage des problèmes matériels, comment activer les services audio dans Win7 ? De nombreux amis sont confus, donc pour la question de savoir comment activer le service audio dans Win7, l'éditeur ci-dessous vous présentera comment activer le service audio dans Win7. Comment activer le service audio dans Win7. 1. Recherchez l'ordinateur sur le bureau de l'ordinateur sous le système Windows 7, cliquez avec le bouton droit et sélectionnez l'option de gestion. 2. Recherchez et ouvrez l'élément de service sous Services et applications dans l'interface de gestion de l'ordinateur qui s'ouvre. Recherchez WindowsAudio sur l'interface du service à droite et double-cliquez pour ouvrir la modification. 4. Basculez vers le projet normal et cliquez sur Démarrer pour activer la fonction.

Quelle est la bonne façon de redémarrer un service sous Linux ? Quelle est la bonne façon de redémarrer un service sous Linux ? Mar 15, 2024 am 09:09 AM

Quelle est la bonne façon de redémarrer un service sous Linux ? Lors de l'utilisation d'un système Linux, nous rencontrons souvent des situations dans lesquelles nous devons redémarrer un certain service, mais nous pouvons parfois rencontrer des problèmes lors du redémarrage du service, comme le fait que le service ne s'arrête ou ne démarre pas réellement. Par conséquent, il est très important de maîtriser la bonne manière de redémarrer les services. Sous Linux, vous pouvez généralement utiliser la commande systemctl pour gérer les services système. La commande systemctl fait partie du gestionnaire système systemd

Composants angulaires et leurs propriétés d'affichage : comprendre les valeurs par défaut non bloquantes Composants angulaires et leurs propriétés d'affichage : comprendre les valeurs par défaut non bloquantes Mar 15, 2024 pm 04:51 PM

Le comportement d'affichage par défaut des composants du framework Angular ne concerne pas les éléments au niveau du bloc. Ce choix de conception favorise l'encapsulation des styles de composants et encourage les développeurs à définir consciemment la manière dont chaque composant est affiché. En définissant explicitement l'affichage des propriétés CSS, l'affichage des composants angulaires peut être entièrement contrôlé pour obtenir la mise en page et la réactivité souhaitées.

See all articles