Jeden Monat teile ich mit Mitgliedern
4 neue praxisnahe Tutorials (je 1000+ Wörter).


Trage Deine Mail, damit Du
Deine Coding + Hacking Skills erweitern kannst!

Die Webseite nutzt nur technisch notwendige Cookies.

Angular Tutorial Deutsch – Angular lernen für Anfänger [2023]

Angular Beginner Coding Lab Steffen Lippke Tutorials und Guides

Brauchst Du ein Angular Tutorial? oder …

  1. Planst Du Dein eigenes Frontend?
  2. Möchtest Du Dir nicht viel Arbeit machen?
  3. Willst Du intelligent mit wenig Code ein stabiles UI zeigen können?

Probiere mal ANGULAR aus!

Seit 2016 vereinfacht Angular, ein beliebtes Web-Frontend, die GUI-Entwicklung.

Wie für jedes Framework braucht der Entwickler einen soliden Start, um die Konzepte und die Architektur des Frameworks kennenzulernen.

Diesen ersten Push möchte ich Dir mit diesem Angular Tutorial geben.

Starten wir!

Ziel: Wir entwickeln eine Angular App

Wir bauen eine Disko-Angular-App, die intuitiv auf Deine Aktionen reagiert.

Das Tutorial gibt Dir eine erste Einführung in das Entwickeln einer App mit dem Angular-Framework für Anfänger.

„Ein Hello-World-Projekt mit vielen neuen Konzepten…“

Deine „Disko“-Angular App – Angular Tutorial mit Praxis Beispiel / Demo

09 Opimiert fürs IPhone Angular Tutorial Deutsch Steffen Lippke
09 Opimiert fürs IPhone Angular Tutorial Deutsch Steffen Lippke

Voraussetzungen: Dein Wissen

Technische Voraussetzungen

Für den Beginn reicht Node.js und ein Editor aus.

Node.js (LTS) – Paketmanager für JavaScript Bibliotheken

Das Angular-Framework basiert auf JavaScript. Der Entwickler codiert in TypeScript. Nutze Node.js. Der Package Manager arbeitet mit einigen JavaScript-Bibliotheken, die Du in Deinem Projekt wiederverwenden kannst.

Node Packet Management
Node Packetmanagement

Editor (Visual Studio Code) – Deine Leinwand

Neben dem Browser brauchst Du einen Code-Editor Deiner Wahl. Am besten verwendest Du einen Editor mit einem Syntax-Highlighting und IntelliSense wie z. B. Visual Studio Code.

VS Code
VS Code

Angular CLI (Neuste Version)

Angular Webseite Angular Tutorial Deutsch Steffen Lippke
Angular Webseite Angular Tutorial Deutsch Steffen Lippke

Die Angular-Konsole (CLI, Command Line Interface) nimmt die viel Arbeit für das Erstellen, Builden und Anpassen Deines Angular-Projekts ab.

npm install -g @angular/cli

Konzept: Grundlagen Angular

Eine kleine Übersicht über das Wichtigste zu Angular.

Ich erkläre Dir die zentralen Konzepte von Angular.

Was ist Angular?

Angular gehört zu den Frontend-Web-Frameworks.

Das Framework entwickelt Google.

Jeder kann die Open-Source-Software (MIT-Lizenz) für seine eigenen Projekte kostenlos nutzen. AngularJS ist der Vorgänger von Angular (ohne JS). Der Vorgänger basiert auf anderen Konzepten, einer Syntax und Ideen und hat sich seitdem komplett verändert.

Angular Webseite Angular Tutorial Deutsch Steffen Lippke
Angular Webseite Angular Tutorial Deutsch Steffen Lippke

Angular strebt einen Mobile-First-Ansatz an, eignet sich neben Smartphones für Desktop-Anwendungen im Browser gut und baut auf JavaScript-Modulen auf.

Der Programmierer schreibt Angular in TypeScript, sodass eine typisierte Programmierung möglich ist.

Was ist eine Single-App-Application?

Du kannst mit Angular eine Single-Page-Web-Anwendungen (SPA) entwickeln. SPAs basieren auf einer HTML-Datei, die jeweils eine große JavaScript- und CSS-Datei einbinden.

Das JavaScript stellt die Inhalte und die Anwendungs-Logik zur Verfügung. Die SPA lädt alle Seiten gleichzeitig, die wie Kartenstapel übereinander liegen. Der JavaScript-Code schiebt die angefragte Ansicht in den Vordergrund.

SPAs bezeichnen Entwickler als eine offline-freundliche Anwendung, weil diese nicht bei jeder Interaktion neu laden müssen.

Das Framework setzt den Fat-Client bzw. Rich-Client um, damit die programmierte Anwendung den Server weniger belastet.

Dependencies Injection – Angular ist modular!

Angular = Modular.

Das Node.js-System besteht aus JavaScript-Bibliotheken mit wiederverwendbarem JavaScript-Code.

Ein Routing-Modul, welche die URL generiert, brauchst Du nicht selbst zu schreiben. -> Nutzer den Router

Du suchst auf https://www.npmjs.com/ das Modul, führst den Konsolen-Befehl npm i modulname aus und importierst das Model.

Seit JavaScript 6 geht der Import mit dem Statement import {Module} from ….

Die app.module.ts TypeScript-Datei listet als ein Inhaltsverzeichnis alle verwendeten Module auf. Der Compiler kann einfacher die TypeScript-Dateien in einen JavaScript-Code umwandeln.

Die app.module.ts ist die Wurzel-Komponente, die alle benötigten Bibliotheken laden kann.

Grundlagen: Angular auf Deinen PC

Der folgende Abschnitt zeigt Dir, wie Du Angular auf Deinen PC bekommst.

Ich erkläre Dir, die wichtigen Dateien und Verzeichnisse in einem Angular Projekt.

In 5 Schritten Angular auf Deinen PC bringen

  1. Downloade Dir Node.js und installiere die Anwendung, die Long Time Support-Version mit dem grafischen Installer.
  2. Öffne eine PowerShell mit den Admin-Rechten und führe
    npm i –g @angular/cli
    aus, um Angular auf Deinem Computer zu installieren.
    01 Angular install Angular Tutorial Deutsch Steffen Lippke
  3. Gehe in ein Verzeichnis, wo Dein Projekt gespeichert sein soll und führe in der Shell / Bash aus
    ng new myFirstApp
    Dieser Befehl erstellt das Angular-Projekt und installiert die JavaScript-Module. Das kann 1 bis 15 Minuten dauern. Beim Installationsprozess fragt Dich die Angular-CLI, ob Du Angular Routing brauchst. Angular lädt ca. 40.000+ Dateien herunter, aus der sich Deine App kompilieren lässt. Die Module speichert NPM innerhalb des node_modules Ordner, den Du am Anfang ignorieren kannst.
  4. Gebe Y ein, um zu bestätigen.
  5. Wähle Sass als Stylesheet-Typ aus.
    02 Neues Projekt Angular Tutorial Deutsch Steffen Lippke
  6. Gehe in das Verzeichnis mit
    cd myFirstApp
  7. Mit
    ng serve –open
    startest Du den Angular-Server und Dein Browser zeigt die App.

Angulars Datei- und Ordner-Struktur erklärt

03 Aufbau der Angular App Angular Tutorial Deutsch Steffen Lippke
03 Aufbau der Angular App Angular Tutorial Deutsch Steffen Lippke
  • dist – enthält alle fertigen Web-Builds in reinem JavaScript.
    Du programmierst in TypeScript (einer verwandten Script-Sprache), welches der Compiler beim Builden des Angular-Projekts übersetzt.
  • nodes_modules – befinden sich alle JavaScript-Bibliotheken von Node.js.
  • src – ist der wichtigste Ordner für die Entwicklung. Dort steht Dein TypeScript-Code. Dort befinden sich alle Bilder und CSS-Dateien.
  • app – Dieser Ordner enthält den wesentlichen Code für Deine App.
  • Die Datei-Endungen stehen für…
    • .ts sind TypeScript-Dateien (Logik)
    • .css oder .scss sind Stylesheet (Aussehen)
    • .html ist das Grundgerüst (Elemente, Texte, Bilder)
    • .json sind die Datengrundlagen (Inhalte, Texte in Reinform)
    • app-routing.module.ts – sorgt dafür, dass Du zu den einzelnen SPA-Ansichten mit einer URL navigieren kannst, obwohl nur eine HTML-Datei vorliegt.
    • modules.ts importiert die JavaScript Module, um die App zum Laufen zu bringen.
    • assets – kann Bilder, Icons und Schriftarten enthalten
  • index.html –  ist die zentrale HTML-Datei, wo alles zusammen läuft. Diese importiert das kompilierte JavaScript zu der Single-App-Applikation.
  • css – ist das globale Stylesheet für das gesamte Projekt

Coden: Ab zur Praxis

Ich hoffe, Du konntest npm und Angular installieren, um einen schnellen und guten Start mit Angular zu haben.

Die ersten Code-Zeilen für Angular schreiben wir jetzt.

Diese Datei ist das Grundgerüst der App.

Die HTML-Komponenten geben die Inhalte wie Texte, Bilder und Videos und dessen Struktur und Anordnung vor. Die Schachtel-Struktur ist mit Tabs eingerückt.

<html>
<head>
  <title>{{webpageTitle}}</title>
</head>

<body>
  <h1>{{webpageTitle}}</h1>
  <div *ngFor="let card of cards" (click)="changeColor()">
    <div class="card" [style.background-color]="card.color">
      <div class="titleBox">
        <h2>{{card.cardTitle}}</h2>
      </div>
      <div class="content">
        <p>{{card.cardContent}}</p>
      </div>
    </div>
  </div>

</body>
</html>


Eine Besonderheit bei Angular sind die doppelte geschweiften Klammern {{}}. Diese markieren eine Angular-Variable, die Du als …

  • Strings (Texte) {{myText}}
  • Nummer {{myNumber}}
  • Rechenoperationen {{5+5*5}}
  • Formatierte Daten {{date | date german}}
  • Funktionsaufrufe {{goBack()}}

…verwenden kannst.

Eine weitere wesentliche Besonderheit von Angular sind die eigenen Direktives. Direktives beschreiben das Verhalten und Aussehen eines Tags näher z.B. [style.border]="".

Diese „Adjektive“ beschreiben einen HTML-Tag näher.

*ngFor gehört zu den strukturierenden Direktives. Angular verwendet *ngFor als eine Kontroll-Struktur. Wie eine For-Schleife kopiert *ngFor z. B. eine DIV-Box mehrfach. Dies ist vergleichbar mit einer For-Schleife wie in jeder anderen Programmiersprache.

*ngFor iteriert (wiederholt) über den Array cards.

  • card ist ein Objekt aus dem Array cards
  • tilteCard greift auf einen String innerhalb eines JSONs zurück

Angular kann die Bestandteile einer JSON innerhalb der doppelt-geschweiften Klammern erreichen.

src > app > app.component.scss

Wie schon in meinem SCSS-Guide erklärt, sind in dieser Datei drei SCSS-Variablen definiert.

  1. $primary-color: #abdcab;
  2. $border-color: #272727;
  3. $normal-margin: 10px;
$primary-color: #abdcab;
$border-color: #272727;
$normal-margin: 10px;

* {
  color: #272727;
  font-family: 'Lucida Sans', 'Lucida Sans Regular', 'Lucida Grande', 'Lucida Sans Unicode', Geneva, Verdana, sans-serif
}

.card {
  background-color: $primary-color;
  border-radius: 5px;
  padding: 1px $normal-margin;
  margin: $normal-margin;
  font-family: Arial;

}

.card h2 {
  border-bottom: 0.5vw solid $border-color;
  width: 100%;
  text-transform: uppercase;
  padding-bottom: $normal-margin;
  font-size: 20px;
}

Ein Sass-Compiler wandelt den SCSS-Code in einen normalen CSS-Code um. Wenn Du Variablen und andere Funktion von SCSS verwendest, kannst Du viel Zeit sparen.

Die Stern-Selektion in der CSS bezieht sich auf alle HTML-Komponenten, die auf dieser Webseite definiert sind.

In den CSS-Klassen verwenden wir die vorher definierten CSS-Variablen für die Farben und Abstände:

src > app > app.component.ts

import { Component } from '@angular/core';
import { default as cardsContent } from './cardsContent.json';

@Component({
  selector: 'app-root',
  templateUrl: './app.component.html',
  styleUrls: ['./app.component.scss']
})

export class AppComponent {

  webpageTitle = 'My First Angular App';
  cards;

  constructor() {
    this.cards = cardsContent.cards;
    console.log(this.cards);
  }

  changeColor() {
    this.cards[0].color = "#" + (Math.random() * 255 * 255 * 255).toString(16).substr(0, 6);
    this.cards[1].color = "#" + (Math.random() * 255 * 255 * 255).toString(16).substr(0, 6);
  }

}


Der Code teilt sich in drei Blöcke auf:

  • Import-Statements
    • Alle Abhängigkeiten / JavaScript-Bibliothek importieren diese Zeilen Code.
    • Ich habe eine lokal-gehostete JSON-Datei mit den Inhalten der Karten importiert.
  • Komponenten
    • „Klammer“: Hier laufen alle Teile zusammen, die ein Modul in Angular ausmachen z. B. das HTML, CSS und JavaScript.
  • Export-Klasse beinhaltet die Funktionen der App-Logik.
    • Zuerst definierst Du die Variable title und cards (2D-Array)
    • Der Konstruktor lädt der Inhalte in die cards-Variable.
    • Die Funktion changeColors():
      • Zeilen 21 und 22 sollen einen der JavaScript-Arrays mit einem neuen RGB-Code überschreiben.
      • Die Math.random() Funktion generiert bei Ausführung eine Zahl zwischen 1 und 0 mit vielen Nachkommastellen.
      • Die Standard-RGB-Farbpalette stellt Dir ein Spektrum von 255 Rottönen kombiniert mit 255 Grün- und 255 Blautönen zur Verfügung.
      • .toStirng() Funktion wandelt die Dezimalzahl in eine Hexadezimal um, wie sie für RGB-Code üblich ist.
      • .substr() entfernt alle Zahlen nach dem Komma. Ein RGB-Code ist in der Regel ein 6-stelliger Hexadezimal-Code (mit Transparenzstufen 8 Stellen).
NPM Module Angular Tutorial Deutsch Steffen Lippke
NPM Module Angular Tutorial Deutsch Steffen Lippke

src > app > cardsContent.json

{
  "cards": [{
    "cardTitle": "Requirements",
    "cardContent": "Computer, Browser, Keyboard, Node.js",
    "color": "#abdcab"
  }, {
    "cardTitle": "Start with Angular",
    "cardContent": "ng serve --open to see results",
    "color": "#0bdcab"
  }]
}


Die JSON speichert die Strings für die Karten.

Später können wir die JSONs in eine NoSQL wie MongoDB oder CouchDB verschieben, welche die Datenhaltung vereinfacht.

MongoDB Angular Tutorial Deutsch Steffen Lippke
MongoDB Angular Tutorial Deutsch Steffen Lippke

Die Karten enthalten jeweils einen Titel, Textinhalt und dessen Ausgangsfarbe.

Erweiterungen: Wie kann ich die App erweitern?

Hast Du noch nicht genug von dem Angular-Tutorial?

Oder möchtest Du noch mehr von Angular kennenlernen?

Dann zeige ich Dir in diesem Abschnitt, wie Du Deine App und Dein Wissen ausbauen kannst.

06 App mit Random Farben Angular Tutorial Deutsch Steffen Lippke
06 App mit Random Farben Angular Tutorial Deutsch Steffen Lippke
09 Opimiert fürs IPhone Angular Tutorial Deutsch Steffen Lippke
09 Opimiert fürs IPhone Angular Tutorial Deutsch Steffen Lippke
  • Füge weiter Karten hinzu
  • Verändere die Styles nach Deinem Belieben
  • Lasse mit *ngIf-Karten ein und ausblenden
  • Füge eine CSS-Animation ein z. B. eine Transition
  • Probiere ng-Bind

Angular 12? Was ist besser?

Angular 12 bringen coole neue Features mit sich:

Angular 9 bringt mit dem Projekt Ivy seit dem 7. Februar 2020 einige Änderungen mit sich:

  • Angular Anwendungen sind nach dem Builden kleiner: Ivy kann die Dateigrößen auf bis zu 40 % reduzieren (bei großen Apps). Damit lädt die Angular App schneller.
  • Testen mit Angular geht schneller
  • Neue Debugging Features mit schön lesbaren Stack-Traces: Du kannst jetzt einfach Deine Fehler nachvollziehen
  • Verbesserte Verbindung zwischen CSS und dem HTML-Gerüst
  • Weniger Build-Fehler: Selbst, wenn ein Build-Fehler passiert, kannst Du den Fehler leichter auf die Grundlagen zurückführen.
  • Build-Zeit wurde von den Entwicklern reduziert. Internationalisierung Deiner App mit den i18n Ersetzung für verschiedene Sprachen.
  • Teste den neuen YouTube-Player aus
  • … oder die neue Google Maps Komponente kann Deine neue Angular App verschönern

Updaten und Freuen

Nutzer von Visual Studio Code können sich auf die Sprach-Service-Verbesserungen freuen, mit dem das Tippen der Angular Zeilen noch einfacher geht.

Die Neuerung betreffen Anfänger vorerst nicht. Lerne mit der neusten Angular Version zu arbeiten.

Um Angular 12 in Deinem Projekt zu verwenden, ist es empfehlenswert Modul für Modul zu übertragen.

Fazit: Deine eigene Angular-App

Sei kreativ. Lese in der Doku. Teste Angular.

Angular ist vielseitig und (nach einer Eingewöhnungsphase) schlank, flexibel und nützlich. Verpasse nicht die Chance neue Web-Anwendungen mit Angular zu bauen.

Wenn Du mit einem Angular-Projekt fertig bist, kannst Du mit ng build –prod eine installierbare Version erstellen. Diesen Ordner lädst Du auf einen (normalen Apache) Web-Server hoch.

Ich freue mich auf Deine Kommentare mit dem Link zu Deinem (ersten) Angular-Projekt.

  • Schreibe von Fehlern, die auftreten …
  • Textstellen, die undeutlich geschildert wurden
  • Kritik mit Verbesserungsvorschlägen
  • Vorschläge für neue Posts …
  • Installationsprobleme …

Danke. Ich freue mich auf Dein Feedback


Danke fürs Lesen! Erhalte weitere Tutorials in meinem kostenlosen Newsletter.
Jeden Monat teile ich mit Dir 4 neue praxisnahe Tutorials.
Trage Deine Mail zum kostenlosen Empfang des Newsletters* ein.




Quellenangabe Bilder: Icons und SVG-Grafiken im Titelbild von Microsoft PowerPoint 2019, frei verfügbar nach EULA
*) Mit dem Abonnement des Newsletters erklären Sie sich mit der Analyse des Newsletters durch individuelle Messung, Speicherung und Analyse von Öffnungsraten und der Klickraten in Profilen zu Zwecken der Gestaltung künftig besserer Newsletter einverstanden. Sie können die Einwilligung in den Empfang des Newsletters und die Messung mit Wirkung für die Zukunft widerrufen. Mehr in der Datenschutzerklärung.

Kommentare 12

  • Bei diesem Tutorial findet der Compiler die Datei ./src/app/cardsContent.json nicht. Man muss in der Datei ./tsconfig.json die Compileroption „resolveJsonModule“ hinzufügen. Version = Angular 9.0.1.

  • Zusätzlich: Der Zufallsgenerator für die Hintergrundfarbe ist nicht ganz exakt. Statt:

    „255*255*255“

    sollte es heißen:

    „256*256*256 – 1“

  • Zum Erzeugen der Produktionsversion kann es erforderlich sein statt:

    #>ng build –prod

    einzugeben:

    #>ng build –prod –base-href=“./“

    In der index.html steht dann in statt href=“/“.

    Das betrifft z.B. Debian Linux. Es wird auch diskutiert, ob das Projekt im Browser als lokale Datei geöffnet werden kann. Auf Debian 4.9.1 und Angular 9.0.1 ergab sich folgendes:

    – Läuft mit ng serve –open auf Port 4200 als Debugversion.
    – Läuft mit der obigen Änderung betreffend „href“ nicht als lokal geöffnete Datei.
    – Läuft mit der obigen Änderung betreffend „href“ im Apache Webserver, geöffnet von localhost, installiert im Verzeichnis /var/www/html/myFirstApp/index.html.

  • Bei „ng serve –open“ bitte zu „ng serve –open“ ändern, ansonsten gibt es den Fehler „unknown option -n“ .

  • Moin,

    hab eben anhand dieses Tutorials den Einstieg in Angular gewagt.
    Eine wichtige Erkenntnis daraus muss ich jetzt teilen:

    SASS und SCSS sind zwei verschiedene Dinge!
    Du schreibst „Wähle Sass als Stylesheet-Typ aus.“
    Dein Stylesheet ist dann aber in SCSS.

    Das hat mich mächtig verwirrt und auch zu ein paar Fehlern geführt bis ich den Unterschied gelernt hab.

  • Fehler: Consider using ‚–resolveJsonModule‘ to import module with ‚.json‘ extension.

    Ich habe

    „resolveJsonModule“: true,
    „allowSyntheticDefaultImports“: true,

    der tsconfig.json
    im Wurzelverzeichnis hinzugefügt.

    Seit TypeScript 2.9 ist das wohl notwendig.

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert

Diese Website verwendet Akismet, um Spam zu reduzieren. Erfahre mehr darüber, wie deine Kommentardaten verarbeitet werden.