Inhaltsverzeichnis
1. Direktive DirectiveDirective
2.   管道 Pipe
3.  服务 Service
Heim Web-Frontend js-Tutorial Eine ausführliche Analyse von Direktiven, Pipes und Services in Angular

Eine ausführliche Analyse von Direktiven, Pipes und Services in Angular

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

Was sind Anweisungen, Pipes und Services in Angular? Der folgende Artikel führt Sie durch die Anweisungen, Pipelines und Dienste in Angular. Ich hoffe, er ist hilfreich für Sie!

Eine ausführliche Analyse von Direktiven, Pipes und Services in Angular

1. Direktive DirectiveDirective

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

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

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

1.1 内置指令

1.1.1 *ngIf

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

<div *ngIf="data.length == 0">没有更多数据</div>
Nach dem Login kopieren
<div *ngIf="data.length > 0; then dataList else noData"></div>
<ng-template #dataList>课程列表</ng-template>
<ng-template #noData>没有更多数据</ng-template>
Nach dem Login kopieren

1.1.2 [hidden]

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

<div [hidden]="data.length === 0">没有更多数据</div>
Nach dem Login kopieren

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 }
]
Nach dem Login kopieren
<!--  
    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>
Nach dem Login kopieren
<li *ngFor="let item of list; trackBy: identify"></li>
Nach dem Login kopieren
identify(index, item){
  return item.id; 
}
Nach dem Login kopieren

1.2 自定义指令

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

<div [appHover]="{ bgColor: &#39;skyblue&#39; }">Hello Angular</div>
Nach dem Login kopieren
  • 创建自定义指令

$ ng g d appHover
# 全称 ng generate directive
Nach dem Login kopieren
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"
  }
}
Nach dem Login kopieren

2. 管道 Pipe

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

2.1 内置管道

  • date 日期格式化

  • currency 货币格式化

  • uppercase 转大写

  • lowercase 转小写

  • json 格式化json 数据

<p>{{ date | date: "yyyy-MM-dd" }}</p>
Nach dem Login kopieren

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;;
    }
}
Nach dem Login kopieren
// app.module.ts
import { SummaryPipe } from &#39;./summary.pipe&#39;
@NgModule({
    declarations: [SummaryPipe] 
});
Nach dem Login kopieren

3. 服务 Service

Directive ist die von Angular bereitgestellte Möglichkeit, DOM zu bedienen. Anweisungen werden in Attributanweisungen und Strukturanweisungen unterteilt. [Empfohlene verwandte Tutorials: „

angular Tutorial“]Attributanweisungen: Ändern Sie das Erscheinungsbild oder Verhalten vorhandener Elemente und verwenden Sie [], um es zu umschließen.

Strukturanweisungen: Fügen Sie DOM-Knoten hinzu und löschen Sie sie, um das Layout zu ändern. Verwenden Sie * als Anweisungspräfix.

1.1 Integrierte Anweisungen
  • 1.1 .1 *ngIf
  • Rendern Sie DOM-Knoten oder entfernen Sie DOM-Knoten entsprechend den Bedingungen
  • $ ng g s services/TestService --skip-tests
    Nach dem Login kopieren
    import { Injectable } from &#39;@angular/core&#39;;
    
    @Injectable({
      providedIn: &#39;root&#39;
    })
    export class TestService { }
    Nach dem Login kopieren
  • 1.1 .2 [hidden]

Zeigen Sie DOM-Knoten an oder verbergen Sie DOM-Knoten entsprechend den Bedingungen (display)
export class AppComponent {
  constructor (private testService: TestService) {}
}
Nach dem Login kopieren


1.1.3 *ngFor

Durchlaufen Sie die Daten, um die HTML-Struktur zu generieren
import { Injectable } from &#39;@angular/core&#39;;

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

export class CarListService {
}
Nach dem Login kopieren
import { Injectable } from &#39;@angular/core&#39;;
import { CarModule } from &#39;./car.module&#39;;

@Injectable({
  providedIn: CarModule,
})

export class CarListService {
}
Nach dem Login kopieren
import { CarListService } from &#39;./car-list.service&#39;;

@NgModule({
  providers: [CarListService],
})
export class CarModule {
}
Nach dem Login kopieren
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 ]
})
Nach dem Login kopieren

1.2 Benutzerdefinierte Anweisungen

🎜🎜🎜Anforderungen: Legen Sie die Standardhintergrundfarbe für das Element fest Hintergrundfarbe, wenn die Maus hinein bewegt wird, und die Hintergrundfarbe, wenn sich die Maus heraus bewegt. Hintergrundfarbe🎜rrreee🎜🎜🎜Benutzerdefinierte Anweisungen erstellen🎜🎜🎜rrreeerrreee
🎜🎜2. Pipe Pipe🎜🎜 🎜Die Rolle der Pipe besteht darin, Komponentenvorlagendaten zu formatieren. 🎜🎜🎜🎜2.1 Integrierte Pipeline🎜🎜🎜🎜🎜🎜Datum Datumsformatierung🎜🎜🎜🎜Währung Währungsformatierung🎜🎜🎜🎜Großbuchstaben In Großbuchstaben konvertieren 🎜🎜🎜🎜lowercase In Kleinbuchstaben konvertieren 🎜🎜🎜🎜json json Daten formatieren 🎜🎜🎜rrreee🎜🎜🎜2.2 Benutzerdefiniert Pipeline🎜🎜🎜🎜Anforderungen: Die angegebene Zeichenfolge darf die angegebene Länge nicht überschreiten 🎜 🎜 Benutzen Services erleichtert den Austausch von Daten zwischen Modulen und Komponenten, abhängig vom Umfang des Dienstes. 🎜🎜🎜🎜Registrieren Sie den Dienst im Root-Injektor. Alle Module verwenden dasselbe Dienstinstanzobjekt.🎜rrreee🎜🎜🎜Registrieren Sie den Dienst auf Modulebene. Alle Komponenten im Modul verwenden dasselbe Dienstinstanzobjekt Beim Registrierungsdienst auf Komponentenebene verwenden diese Komponente und ihre Unterkomponenten dasselbe Dienstinstanzobjekt Programmierkenntnisse finden Sie unter: 🎜Programmiervideo🎜! ! 🎜

Das obige ist der detaillierte Inhalt vonEine ausführliche Analyse von Direktiven, Pipes und Services in Angular. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn

Heiße KI -Werkzeuge

Undresser.AI Undress

Undresser.AI Undress

KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover

AI Clothes Remover

Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool

Undress AI Tool

Ausziehbilder kostenlos

Clothoff.io

Clothoff.io

KI-Kleiderentferner

Video Face Swap

Video Face Swap

Tauschen Sie Gesichter in jedem Video mühelos mit unserem völlig kostenlosen KI-Gesichtstausch-Tool aus!

Heiße Werkzeuge

Notepad++7.3.1

Notepad++7.3.1

Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version

SublimeText3 chinesische Version

Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1

Senden Sie Studio 13.0.1

Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6

Dreamweaver CS6

Visuelle Webentwicklungstools

SublimeText3 Mac-Version

SublimeText3 Mac-Version

Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

Wie bekomme ich Gegenstände mithilfe von Befehlen in Terraria? -Wie sammle ich Gegenstände in Terraria? Wie bekomme ich Gegenstände mithilfe von Befehlen in Terraria? -Wie sammle ich Gegenstände in Terraria? Mar 19, 2024 am 08:13 AM

Wie bekomme ich Gegenstände mithilfe von Befehlen in Terraria? 1. Was ist der Befehl zum Erteilen von Gegenständen in Terraria? Im Spiel Terraria ist das Erteilen von Befehlen an Gegenstände eine sehr praktische Funktion. Durch diesen Befehl können Spieler die benötigten Gegenstände direkt erhalten, ohne gegen Monster kämpfen oder sich an einen bestimmten Ort teleportieren zu müssen. Dies kann erheblich Zeit sparen, die Effizienz des Spiels verbessern und es den Spielern ermöglichen, sich mehr auf die Erkundung und den Aufbau der Welt zu konzentrieren. Insgesamt macht diese Funktion das Spielerlebnis flüssiger und angenehmer. 2. So verwenden Sie Terraria, um Objektbefehle zu erteilen 1. Öffnen Sie das Spiel und rufen Sie die Spieloberfläche auf. 2. Drücken Sie die „Enter“-Taste auf der Tastatur, um das Chat-Fenster zu öffnen. 3. Geben Sie im Chatfenster das Befehlsformat ein: „/give[Spielername][Artikel-ID][Artikelmenge]“.

Lösung für die Deaktivierung des Windows 10 Security Center-Dienstes Lösung für die Deaktivierung des Windows 10 Security Center-Dienstes Jul 16, 2023 pm 01:17 PM

Der Security Center-Dienst ist eine integrierte Computerschutzfunktion im Win10-System, die die Computersicherheit in Echtzeit schützen kann. Einige Benutzer stoßen jedoch auf eine Situation, in der der Security Center-Dienst beim Booten des Computers deaktiviert ist. Es ist ganz einfach: Sie können das Service-Panel öffnen, das SecurityCenter-Element suchen, dann mit der rechten Maustaste darauf klicken, um dessen Eigenschaftenfenster zu öffnen, den Starttyp auf „Automatisch“ einstellen und dann auf „Starten“ klicken, um den Dienst erneut zu starten. Was tun, wenn der Win10 Security Center-Dienst deaktiviert ist: 1. Drücken Sie „Win+R“, um das Fenster „Betrieb“ zu öffnen. 2. Geben Sie dann den Befehl „services.msc“ ein und drücken Sie die Eingabetaste. 3. Suchen Sie dann im rechten Fenster nach dem Element „SecurityCenter“ und doppelklicken Sie darauf, um dessen Eigenschaftenfenster zu öffnen.

So installieren Sie Angular unter Ubuntu 24.04 So installieren Sie Angular unter Ubuntu 24.04 Mar 23, 2024 pm 12:20 PM

Angular.js ist eine frei zugängliche JavaScript-Plattform zum Erstellen dynamischer Anwendungen. Es ermöglicht Ihnen, verschiedene Aspekte Ihrer Anwendung schnell und klar auszudrücken, indem Sie die Syntax von HTML als Vorlagensprache erweitern. Angular.js bietet eine Reihe von Tools, die Sie beim Schreiben, Aktualisieren und Testen Ihres Codes unterstützen. Darüber hinaus bietet es viele Funktionen wie Routing und Formularverwaltung. In dieser Anleitung wird erläutert, wie Angular auf Ubuntu24 installiert wird. Zuerst müssen Sie Node.js installieren. Node.js ist eine JavaScript-Ausführungsumgebung, die auf der ChromeV8-Engine basiert und es Ihnen ermöglicht, JavaScript-Code auf der Serverseite auszuführen. In Ub sein

Wie verwende ich Pipes zum Lesen und Schreiben von Dateien in Golang? Wie verwende ich Pipes zum Lesen und Schreiben von Dateien in Golang? Jun 04, 2024 am 10:22 AM

Lesen und Schreiben von Dateien über Pipes: Erstellen Sie eine Pipe, um Daten aus der Datei zu lesen und durch die Pipe zu leiten. Empfangen Sie Daten aus der Pipe und verarbeiten Sie sie. Schreiben Sie die verarbeiteten Daten in die Datei. Verwenden Sie Goroutinen, um diese Vorgänge gleichzeitig auszuführen, um die Leistung zu verbessern

So öffnen Sie den Remotedesktopverbindungsdienst mit einem Befehl So öffnen Sie den Remotedesktopverbindungsdienst mit einem Befehl Dec 31, 2023 am 10:38 AM

Die Remote-Desktop-Verbindung hat das tägliche Leben vieler Benutzer erleichtert. Einige Leute möchten Befehle verwenden, um eine Remote-Verbindung herzustellen, was bequemer ist. Der Remotedesktopverbindungsdienst kann Ihnen bei der Lösung dieses Problems helfen, indem er einen Befehl zum Öffnen verwendet. So richten Sie den Remote-Desktop-Verbindungsbefehl ein: Methode 1. Stellen Sie eine Remote-Verbindung her, indem Sie den Befehl ausführen. 1. Drücken Sie „Win+R“, um „Ausführen“ zu öffnen, geben Sie mstsc2 ein und klicken Sie dann auf „Optionen anzeigen“. 3. Geben Sie die IP-Adresse ein und klicken Sie "Verbinden". 4. Es wird angezeigt, dass eine Verbindung hergestellt wird. Methode 2: Remote-Verbindung über die Eingabeaufforderung 1. Drücken Sie „Win+R“, um „Ausführen“ zu öffnen, und geben Sie cmd2 ein. Geben Sie in der „Eingabeaufforderung“ mstsc/v:192.168.1.250/console ein

Was ist der richtige Weg, einen Dienst unter Linux neu zu starten? Was ist der richtige Weg, einen Dienst unter Linux neu zu starten? Mar 15, 2024 am 09:09 AM

Was ist der richtige Weg, einen Dienst unter Linux neu zu starten? Wenn wir ein Linux-System verwenden, stoßen wir häufig auf Situationen, in denen wir einen bestimmten Dienst neu starten müssen, aber manchmal können beim Neustart des Dienstes Probleme auftreten, z. B. wenn der Dienst nicht tatsächlich gestoppt oder gestartet wird. Daher ist es sehr wichtig, die richtige Methode zum Neustarten von Diensten zu beherrschen. Unter Linux können Sie normalerweise den Befehl systemctl verwenden, um Systemdienste zu verwalten. Der Befehl systemctl ist Teil des systemd-Systemmanagers

So aktivieren Sie den Audiodienst in Win7 So aktivieren Sie den Audiodienst in Win7 Jul 10, 2023 pm 05:13 PM

Computer verfügen über zahlreiche Systemdienste, die die Anwendung verschiedener Programme unterstützen. Wenn der Computer keinen Ton hat und die meisten Audiodienste nach der Behebung von Hardwareproblemen nicht aktiviert sind, wie aktivieren Sie Audiodienste in Win7? Viele Freunde sind verwirrt. Für die Frage, wie man den Audiodienst in Win7 aktiviert, stellt der Redakteur unten vor, wie man den Audiodienst in Win7 aktiviert. So aktivieren Sie den Audiodienst in Win7. 1. Suchen Sie den Computer auf dem Computerdesktop unter Windows 7, klicken Sie mit der rechten Maustaste und wählen Sie die Verwaltungsoption. 2. Suchen und öffnen Sie das Dienstelement unter „Dienste und Anwendungen“ in der Computerverwaltungsoberfläche, die sich öffnet. Suchen Sie auf der Serviceoberfläche rechts nach WindowsAudio und doppelklicken Sie, um die Änderung zu öffnen. 4. Wechseln Sie zum regulären Projekt und klicken Sie auf Start, um die Funktion zu aktivieren.

Winkelkomponenten und ihre Anzeigeeigenschaften: Nicht-Block-Standardwerte verstehen Winkelkomponenten und ihre Anzeigeeigenschaften: Nicht-Block-Standardwerte verstehen Mar 15, 2024 pm 04:51 PM

Das Standardanzeigeverhalten für Komponenten im Angular-Framework gilt nicht für Elemente auf Blockebene. Diese Designwahl fördert die Kapselung von Komponentenstilen und ermutigt Entwickler, bewusst zu definieren, wie jede Komponente angezeigt wird. Durch explizites Festlegen der CSS-Eigenschaft display kann die Anzeige von Angular-Komponenten vollständig gesteuert werden, um das gewünschte Layout und die gewünschte Reaktionsfähigkeit zu erreichen.

See all articles