EMZETT.
Login

AngularJS

Kurz: Die ursprüngliche, erste Version von Angular (ab 2010, JavaScript-basiert) — technisch komplett verschieden vom heutigen Angular (2+), trotz ähnlichem Namen.

Genauer: AngularJS führte Konzepte wie Zwei-Wege-Datenbindung und Direktiven im großen Stil ein, wurde aber 2022 offiziell eingestellt (End of Life). Der Nachfolger “Angular” (ohne “JS”, ab Version 2) ist ein komplett neues, TypeScript-basiertes Framework ohne Rückwärtskompatibilität.

Im Detail

Die Zwei-Wege-Datenbindung (ng-model) war AngularJS’ bekanntestes Feature: Änderte man einen Wert im UI, aktualisierte sich automatisch die zugehörige Variable im JavaScript-Code — und umgekehrt. Unter der Haube nutzte AngularJS dafür einen “Digest Cycle”, der bei jeder möglichen Änderung alle gebundenen Werte auf Unterschiede prüfte. Das war einfach zu benutzen, wurde bei großen Anwendungen mit vielen Bindungen aber spürbar langsam, weil der Digest Cycle mit wachsender Seite immer mehr zu vergleichen hatte.

Weil kein Weg gefunden wurde, diese Architektur performant genug für moderne, komponentenbasierte Anwendungen zu machen, entschied sich das Angular-Team 2016 für einen kompletten Neuanfang statt einer schrittweisen Modernisierung — daher der Bruch im Namen und die fehlende Kompatibilität. Seit dem offiziellen End-of-Life 2022 erhält AngularJS keine Sicherheitsupdates mehr; alte Projekte, die noch darauf laufen, gelten als technische Schuld und werden meist auf Angular, React oder Vue migriert.

Direktiven als zentrales Konzept

Neben der Datenbindung prägten Direktiven (HTML-Attribute mit ng- Präfix) den AngularJS-Stil grundlegend: ng-repeat erzeugte Listen direkt aus dem Markup heraus, ng-if/ng-show blendeten Elemente bedingt ein oder aus, ng-click band Klick-Handler direkt im HTML. Dieser deklarative Ansatz — Logik direkt im Template statt in separatem JavaScript-Code — wirkte 2010 revolutionär einfach, wurde aber bei komplexeren Anwendungen schnell unübersichtlich, weil sich Verhalten über viele HTML-Attribute verteilte statt zentral im Code zu stehen.

Warum die Migration so schwer war

Ein Grund, warum viele Unternehmen AngularJS trotz End-of-Life noch lange weiterbetrieben, ist der fundamentale Sprachwechsel: Ein AngularJS-Projekt in JavaScript lässt sich nicht schrittweise nach Angular (TypeScript, komponentenbasiert, ohne Digest Cycle) migrieren, sondern erfordert im Kern eine komplette Neuentwicklung der Frontend-Logik. Google bot dafür zwar mit “ngUpgrade” ein Interop-Tool an, das beide Frameworks parallel in derselben Anwendung laufen ließ, aber selbst damit blieb die eigentliche Portierung des Codes manuelle Arbeit. Viele Teams entschieden sich deshalb ganz gegen Angular und wählten stattdessen React oder Vue, was AngularJS’ Namensvetter Angular in den 2020ern gegenüber diesen beiden Frameworks Marktanteile kostete.

Abgrenzung zu modernem Angular

Wer heute “Angular” hört und AngularJS-Erfahrung mitbringt, sollte nicht von Ähnlichkeiten ausgehen: Modernes Angular nutzt TypeScript statt JavaScript, Komponenten statt Controller/Scope, ein reaktives Change-Detection-System (Zone.js, inzwischen zunehmend durch Signals abgelöst) statt des Digest Cycle, und eine komplett andere Template-Syntax. Die einzige echte Gemeinsamkeit ist die Herkunft aus demselben Google-Team und die grundlegende Idee eines vollständigen, meinungsstarken Frontend-Frameworks statt einer reinen Bibliothek wie React.

Siehe auch: Angular, JS