
Angular
Description
Alles über E-Books | Antworten auf Fragen rund um E-Books, Kopierschutz und Dateiformate finden Sie in unserem Info- & Hilfebereich.
More details
Other editions
Additional editions

Persons
ISNI: 0000 0005 1527 4765 GND: 1133086330
ISNI: 0000 0005 1527 4802 GND: 1133086446
ISNI: 0000 0004 0031 0316 GND: 1133086470
Content
- Intro
- Vorwort
- I Einführung
- Benötigte Werkzeuge: Editor, Node.js und Co.
- Konsole, Terminal und Shell
- Paketverwaltung mit Node.js und NPM
- Visual Studio Code
- Google Chrome
- Angular Developer Tools
- Codebeispiele in diesem Buch
- Angular CLI: der Codegenerator für unser Projekt
- Das offizielle Tool für Angular
- Installation
- Autovervollständigung einrichten
- Syntax & Konzepte: Grundlagen für modernes Angular
- TypeScript
- Template Strings
- Arrow Functions
- Immutability
- Spread-Syntax und Rest-Parameter
- Private Class Fields
- Property Modifiers: readonly und protected
- Decorators
- Generic Types
- Promises und async/await
- II BookManager: Schritt für Schritt zur App
- Projektvorstellung und Einrichtung
- Unser Projekt: BookManager
- Struktur und Quellcode
- Projekt mit der Angular CLI initialisieren
- Aufbau des neuen Projekts
- Das Projekt starten
- Softwaretests ausführen
- Beispiel-Template entfernen
- Globale Styles einbinden: @angular-buch/styles
- Komponenten und Signals: die Grundbausteine
- Komponenten
- Das Template einer Komponente
- Komponenten in der Anwendung verwenden
- Komponenten generieren mit der Angular CLI
- Reaktivität mit Signals
- Template-Syntax
- Der Style einer Komponente
- BookManager: Buchliste anzeigen
- Praktische Umsetzung
- Unit- und Integrationstests mit Vitest
- Komponenten testen
- Property Bindings und Component Inputs
- Property Bindings für native Elemente
- Spezielle Property Bindings
- Wiederholung: Komponenten verschachteln
- Datenfluss von Eltern- zu Kindkomponenten
- Syntax für Property Bindings
- Lebenszyklus von Komponenten
- BookManager: Komponenten aufteilen
- Praktische Umsetzung
- Verschachtelte Komponenten testen
- Event Bindings und Component Outputs
- Native Events aus dem DOM
- Eigene Events aus Komponenten
- BookManager: Favoritenliste erstellen
- Praktische Umsetzung
- Komponenten mit Outputs testen
- Dependency Injection: Code in Services auslagern
- Services in Angular
- Abhängigkeiten anfordern mit inject()
- Providers: Abhängigkeiten registrieren
- Tree-Shakable Providers: Abhängigkeiten automatisch registrieren
- Manuelle Providers: Abhängigkeiten explizit registrieren
- Aufrufreihenfolge
- Abhängigkeiten ersetzen
- Eigene Tokens definieren mit InjectionToken
- BookManager: Services nutzen
- Praktische Umsetzung
- Services testen
- Fortgeschrittene Konzepte für Signals
- Reactive Context: Wann ändert sich ein Signal?
- Effect: auf Änderungen reagieren
- Computed Signal: Werte berechnen
- Linked Signal: schreibbares Signal mit Berechnung
- Model Signal: Kombination von Input und Output
- untracked(): den Reactive Context verlassen
- BookManager: Bücher lokal suchen
- Praktische Umsetzung
- Computed Signals testen
- Routing: durch die Anwendung navigieren
- Routen konfigurieren
- Routen einbinden: die Datei app.routes.ts
- Routing in Features verwenden
- Komponenten anzeigen
- Root-Route
- Weiterleitung auf eine andere Route
- Wildcard-Route
- Links setzen
- Routenparameter auslesen
- Aktive Links stylen
- Route programmatisch wechseln
- Seitentitel setzen
- Pfade in Single-Page-Applikationen
- BookManager: Routing
- Praktische Umsetzung
- Komponenten mit Routing testen
- Routing: Component Input Binding
- Inputs setzen mit dem Router
- Inputs transformieren
- BookManager: Component Input Binding
- Praktische Umsetzung
- Routenparameter als Inputs testen
- HTTP-Kommunikation: ein Server-Backend anbinden
- Daten per HTTP abrufen
- HTTP mit der Fetch API
- Der HttpClient von Angular
- HttpClient global konfigurieren
- Optionen für den HttpClient
- Ausblick: Codegenerierung mit OpenAPI
- BookManager: Daten per HTTP abrufen
- Praktische Umsetzung
- HTTP-Aufrufe mocken und testen
- Daten laden mit der Resource API
- Die Resource API
- Auf die Daten zugreifen
- Status verarbeiten
- Daten neu laden
- Werte lokal überschreiben
- Loader mit Parameter
- rxResource: Resource mit Observables
- httpResource: Resource für HTTP-Requests
- Abgrenzung: Resource API vs HttpClient
- Diskussion zur Architektur
- BookManager: HTTP mit der Resource API
- Praktische Umsetzung: Buchliste
- Praktische Umsetzung: Detailseite
- HTTP-Resources testen
- Pipes: Daten im Template transformieren
- Pipes verwenden
- Eingebaute Pipes für den sofortigen Einsatz
- Eigene Pipes entwickeln
- BookManager: Pipes verwenden
- Praktische Umsetzung: Datum formatiert anzeigen
- Praktische Umsetzung: ISBN formatieren
- Pipes testen
- Formularverarbeitung mit Signal Forms
- Angulars Ansätze für Formulare
- Datenmodell und Feldstruktur
- Formularmodell mit dem Template verknüpfen
- Werte und Zustände verarbeiten
- Schema für Validierung und Feldlogik
- Eingebaute Validatoren
- Zustände anzeigen
- Fehlernachrichten anzeigen
- FieldContext: Feldinformationen für die Validierung
- Eigene Validierungsregeln
- Asynchrone Validierung
- Formularänderungen entprellen
- Verfügbarkeit von Feldern steuern
- Schema-Komposition
- apply(): Schemas zusammenfügen
- applyEach(): Listen validieren
- applyWhen(): bedingte Validierung
- Formular absenden
- Absendelogik definieren
- Der manuelle Weg: die Funktion submit()
- Der elegante Weg: die Direktive FormRoot
- Fehlermeldungen vom Server anzeigen
- Verhalten beim Absenden konfigurieren
- Formular zurücksetzen mit reset()
- Best Practices zur Barrierefreiheit
- CSS-Klassen automatisch setzen
- BookManager: Buchdaten im Formular erfassen
- Praktische Umsetzung: Buchdaten erfassen
- Praktische Umsetzung: Formulardaten speichern
- Signal Forms testen
- BookManager: Formulareingaben validieren
- Praktische Umsetzung
- Formularvalidierung testen
- BookManager: Suche auf dem Server
- Praktische Umsetzung
- Query-Parameter testen
- Lazy Loading
- Lazy Loading mit dem Router
- loadComponent: Komponenten asynchron laden
- loadChildren: Features asynchron laden
- Preloading: Routen asynchron vorladen
- Lazy Loading mit Deferrable Views
- Abgrenzung: Lazy Loading vs Deferrable Views
- BookManager: Lazy Loading implementieren
- Praktische Umsetzung
- Hinweise zum Testing
- Reaktive Programmierung mit RxJS
- Alles ist ein Datenstrom
- Observables sind Funktionen
- Das Observable aus RxJS
- Observables abonnieren
- Grundbegriffe
- Observables erzeugen
- Observables und Promises
- Operatoren: Datenströme modellieren
- Heiße Observables, Multicasting und Subjects
- Subscriptions verwalten & Memory Leaks vermeiden
- Observables subscriben mit der AsyncPipe
- Observables und Signals: toSignal() und toObservable()
- Fehler behandeln
- Flattening-Strategien für Higher-Order Observables
- BookManager: Typeahead-Suche
- Praktische Umsetzung
- RxJS-Pipelines testen
- III Wissenswertes
- Barrierefreiheit (a11y)
- Gesetze und Standards
- Semantic HTML
- ARIA-Attribute
- Host Bindings
- Routing
- Formularverarbeitung
- Angular Aria: barrierefreie Direktiven
- Angular CDK
- AI-Unterstützung für Angular
- Herausforderung: veraltetes Wissen
- AI-Konfigurationsdateien
- Herausforderung: das Kontextfenster
- Der MCP-Server von Angular
- Empfehlungen für die Praxis
- Softwaretests
- Testarten: Wie sollte man testen?
- Unit- und Integrationstests mit Vitest
- Tests starten
- Der Aufbau eines Tests
- Testdoubles
- Test Pollution vermeiden
- Fake Timers
- Testing mit Angular: das TestBed
- Services testen
- Komponenten testen mit ComponentFixture
- Auf Aktualisierungen warten
- Kindkomponenten mocken mit overrideComponent()
- Weitere Testing-APIs von Angular
- E2E-Tests
- Deployment
- Den Build konfigurieren (angular.json)
- Application Builder
- Konfigurationen
- Build ausführen
- Spezifische Konfigurationen beim Build laden
- Bundles
- Budgets konfigurieren
- Basispfad setzen
- Erfolgreichen Build testen
- Umgebungen konfigurieren mit File Replacements
- InjectionTokens: direkte Abhängigkeiten zur Umgebung vermeiden
- Produktive Anwendung ausliefern
- Automatisiertes Deployment (CI/CD)
- Bildoptimierung mit NgOptimizedImage
- Wichtige Bilder priorisieren
- Bildgrößen handhaben
- Angular aktualisieren
- ng update: Update mit der Angular CLI
- Automatisches Patch-Management
- Angular Update Guide
- Nachwort
- IV Anhang
- Abkürzungsverzeichnis
- Linkliste
- API- und Sprachreferenz
- Index
- Die Autoren
System requirements
File format: PDF
Copy protection: Watermark-DRM (Digital Rights Management)
System requirements:
- Computer (Windows; MacOS X; Linux): Use the free software Adobe Reader, Adobe Digital Editions, or any other PDF viewer of your choice (see eBook Help).
- Tablet/Smartphone (Android; iOS): Install the free app Adobe Digital Editions or another reading app for eBooks, e.g., PocketBook (see eBook Help).
- E-reader: Bookeen, Kobo, Pocketbook, Sony, Tolino and many more (only limited: Kindle).
The file format PDF always displays a book page identically on any hardware. This makes PDF suitable for complex layouts such as those used in textbooks and reference books (images, tables, columns, footnotes). Unfortunately, on the small screens of e-readers or smartphones, PDFs are rather annoying, requiring too much scrolling.
This eBook uses Watermark-DRM, a „soft” copy protection. This means that there are no technical restrictions to prevent illegal distribution. However, there is a personalised watermark embedded in the eBook that can be used to identify the purchaser of the eBook in the event of misuse and to provide evidence for legal purposes.
For more information, see our eBook Help page.