www.wikidata.de-de.nina.az
AngularJS zur Abgrenzung vom Nachfolger Angular Version 2 und hoher auch AngularJS 1 oder Angular 1 bezeichnet ist ein clientseitiges JavaScript Webframework zur Erstellung von Single Page Webanwendungen nach einem Model View ViewModel Muster Die Softwareentwicklung und das Komponententesten konnen damit vereinfacht werden Es wurde als Open Source Framework vom US amerikanischen Unternehmen Google Inc publiziert Der Long Term Support LTS wurde am 31 Dezember 2021 eingestellt 3 AngularJSBasisdatenMaintainer Google Inc Entwickler Google Inc Online CommunityErscheinungsjahr 20 Oktober 2010Aktuelle Version 1 8 3 1 2 7 April 2022 Programmiersprache TypeScript JavaScriptKategorie FrameworkLizenz MIT Lizenzdeutschsprachig neinwww angularjs orgIm September 2016 wurde die stark verbesserte nicht ruckwarts kompatible Version Angular 2 herausgegeben 4 Der Begriff AngularJS wird nunmehr eingeschrankt auf Version 1 verwendet Angular ohne Zusatz nur fur die hoheren Versionen Inhaltsverzeichnis 1 Konzept 2 Struktur 2 1 Controller 2 2 Direktiven 2 3 Interpolation 2 4 Services 2 5 Kommunikation zwischen Scopes 2 6 Routen in Single Page Applikationen 3 Hallo Welt Programm 4 Angulardart 5 Siehe auch 6 Literatur 7 Weblinks 8 EinzelnachweiseKonzept BearbeitenDie Philosophie von AngularJS basiert auf der Annahme dass deklarative Programmierung in HTML verwendet werden sollte um Benutzeroberflachen zu gestalten und Softwarekomponenten miteinander zu verbinden wahrend imperative Programmierung in JavaScript in Form von AngularJS fur die Umsetzung von Programmlogik verwendet werden sollte Der Aufbau von AngularJS orientiert sich lose am MVC Muster insbesondere dem MVVM Muster nach welchem eine Software in Models Datenmodelle Views Benutzeroberflache und ViewModels zur Veranderung der Benutzeroberflache nach Interaktion mit den Daten gegliedert wird 5 AngularJS erweitert das Vokabular von HTML um neue Tags und Parameter die Direktiven aus welchen zur Laufzeit Funktionalitat generiert wird Dies geschieht uber sogenannte Datenbindungen durch welche einzelne Elemente einer Webapplikation mit einem Datensatz verkoppelt werden Interagiert der Benutzer mit der Applikation konnen die Datensatze verandert oder anders dargestellt werden etwa durch die Sortierung einer Tabelle nach einem anderen Kriterium So kann Funktionalitat erzeugt werden ohne auf DOM Manipulation via jQuery oder ahnlicher Bibliotheken zuruckzugreifen Die verwendeten Datenmodelle werden nicht in AngularJS selbst definiert sondern ubernommen wie sie sind Insbesondere gibt es keine clientseitige Entitatenverwaltung wie in anderen Single Page Frameworks AngularJS Applikationen werden in verschiedene Module untergliedert Templates definieren den Aufbau der Benutzeroberflache Controller enthalten die Programmlogik Scopes verwalten die Daten auf die ein Programmbaustein zugreifen kann Filter sortieren die Daten dynamisch nach vorgegebenen Kriterien Provider stellen weitere Funktionalitaten ublicherweise unter anderem die Interaktion mit einem Backend zur Verfugung Diese Module werden vom sogenannten Dependency Injection Container beim Aufruf der Applikation durch Bootstrapping zu einem lose gekoppelten Programm zusammengefuhrt welches aus wiederverwertbaren Teilkomponenten besteht So entsteht eine wartbare Software im Sinne der ISO IEC 25010 Technisch gesehen ist eine solche Anwendung eine Eventschleife die jede Anderung abfangt auswertet und gff Aktualisierungen in der Prasentation initiiert Nichtveranderliche Daten konnen mittels eines One Time Bindings einmalig gebunden und von weiteren Aktualisierungen ausgeschlossen werden Ein mitgeliefertes Mocking Modul erlaubt es Standardfunktionalitaten wie die Komponente zum durchfuhren von HTTP Anfragen durch Attrappen zu ersetzen und so isolierte Testfalle umzusetzen ohne tatsachlich Anfragen zu verschicken oder Daten zu verandern Dadurch ist die isolierte Testbarkeit der einzelnen Module gegeben 6 Struktur BearbeitenController Bearbeiten In AngularJS wird ein clientseitiges Model nach dem Model View ViewModel Muster ein ViewModel gemeinsam mit der Logik in einem Controller definiert Die Controller werden anschliessend zu einem Modul zusammengefasst Die Module werden mit Hilfe eines integrierten Dependency Injection Containers in die Applikation eingebunden Dabei wird die View mit dem Model verbunden Diese Datenbindung ist bidirektional das heisst Benutzereingaben wirken sich auf das Model aus programmatische Anderungen am Model aber auch auf die Benutzeransicht Direktiven Bearbeiten AngularJS ermoglicht es benutzerdefinierte HTML Elemente und Attribute sogenannte Direktiven zu erstellen Vordefinierte Direktiven sind am ng Namensraum im Prafix erkennbar Die Art des zu benutzenden Prafixes ist dabei vom Validator abhangig Prafix Syntax fur Direktiven Validator Beispielkeiner b ng b repeat item in items XML b ng b repeat item in items HTML5 b data ng b repeat item in items xHTML b x ng b repeat item in items Um Elemente auszuwahlen verwendet AngularJS ein integriertes jQuery Lite jqLite Dabei handelt es sich um eine reduzierte Version von jQuery in welcher nur die wichtigsten Funktionalitaten eingebunden sind Wird jQuery in das HTML DOM eingebunden wird dieses statt jQuery Lite verwendet Interpolation Bearbeiten Mit Hilfe von doppelten geschweiften Klammern double curly syntax konnen JavaScript Ausdrucke im HTML Code eingebettet werden Hierbei werden jedoch keine Sprunganweisungen unterstutzt Mit dem Pipe Operator konnen Filter hinzugefugt werden die sich auf das angezeigte Resultat auswirken Alternativ kann auch ng bind verwendet werden Die Befehle lt span ng bind name gt lt span gt und lt span gt name lt span gt fuhren beide dazu dass der Wert der Variable name angezeigt wird Mit ng bind wird jedoch verhindert dass der Browser beim erstmaligen Laden die Vorlage anzeigt falls AngularJS die Daten nicht schnell genug geladen und damit die Vorlage ersetzt hat Services Bearbeiten Services enthalten die Geschaftslogik und binden externe Ressourcen etwa REST Webservices ein Services werden als Singleton instanziiert Services konnen selbst programmiert werden oder von Drittanbietern ubernommen werden Das AngularJS Framework stellt aber bereits zahlreiche Services erkennbar am Prafix zur Verfugung Dazu zahlen beispielsweise http und resource die zum Durchfuhren von Ajax Anfragen dienen Beide greifen intern auf das XMLHttpRequest Objekt zu und unterscheiden sich im Abstraktionsgrad Wahrend http beliebige HTTP Anfragen durchfuhren kann ist resource auf REST Services spezialisiert Kommunikation zwischen Scopes Bearbeiten Jeder Controller besitzt ein eigenes scope Objekt welches die zum Controller gehorigen Funktionen und Daten kapselt Damit Controller mit anderen Controllern oder Services kommunizieren konnen werden vom scope bzw vom rootScope Objekt emit und broadcast Methoden zur Verfugung gestellt Dabei dient emit dazu Nachrichten an alle ubergeordneten Scopes zu senden wahrend broadcast dazu dient Nachrichten an untergeordnete Scopes zu senden Damit ein Controller oder ein Service auf eine Nachricht reagieren kann muss er sich fur die Nachricht mit Hilfe der on Methode fur den Nachrichtentyp registrieren Publish Subscribe Verfahren Routen in Single Page Applikationen Bearbeiten In Single Page Applikationen werden mit Routen die Zuordnung von URLs zu spezifischen Ansichten festgelegt Zu diesem Zweck stellt AngularJS das ngRoute Modul 7 bereit Damit konnen innerhalb der globalen HTML Vorlage verschiedene Ansichten HTML Fragmente dynamisch in ein Element mit der ng view Direktive 8 nachgeladen werden Dabei kann man nur eine einzelne ng view Direktive pro Seite angeben Abhilfe schafft hier der alternative UI Router des AngularUI Projekts dessen Funktionsumfang weitaus grosser ist 9 10 11 sowie das Modul Angular Route Segment welches leichtgewichtiger ist und die Schnittstelle des vorhandenen AngularJS Routers lediglich erweitert 12 13 Das location Objekt 14 erlaubt die direkte Verarbeitung der Browser URL so dass eine Seitennavigation simuliert werden kann Hallo Welt Programm BearbeitenIm Folgenden wird ein Hallo Welt Programm in AngularJS gezeigt In Default html lt DOCTYPE html gt lt html gt lt head gt lt title gt Hello World lt title gt lt script src http ajax googleapis com ajax libs angularjs 1 3 16 angular min js gt lt script gt lt script src controller js gt lt script gt lt head gt lt body gt lt div ng app helloWorldModule gt lt div ng controller HelloWorldController gt Name lt input type text ng model name required gt lt hr gt lt div gt Hello name lt div gt lt div gt lt div gt lt body gt lt html gt In controller js use strict definieren eines Moduls var helloWorldModule angular module helloWorldModule hinzufugen eines Controllers zum Modul helloWorldModule controller HelloWorldController function scope scope name World Angulardart BearbeitenMit Angulardart ist eine Version fur die Programmiersprache Dart verfugbar Angulardart lehnt sich eng an AngularJS an wobei die zusatzlichen Moglichkeiten von Dart wie Metadaten Typen und Klassen genutzt werden 15 16 Siehe auch BearbeitenJavaScript Bibliotheken jQuery RequireJSJavaScript MV Frameworks Ember js React Vue js Backbone jsLiteratur BearbeitenPhilipp Tarasiewicz Robin Bohm AngularJS Eine praktische Einfuhrung in das JavaScript Framework 1 Auflage dpunkt verlag 2014 ISBN 978 3 86490 154 6 S 354 Brad Green Shyam Seshadri AngularJS 1 Auflage O Reilly Media 2013 ISBN 978 1 4493 4485 6 S 180 englisch Weblinks Bearbeiten nbsp Commons AngularJS Sammlung von Bildern Offizielle Webprasenz von AngularJS englisch Inoffizielle deutschsprachige Website zu AngularJSEinzelnachweise Bearbeiten Release 1 8 3 7 April 2022 abgerufen am 29 Juli 2022 1 8 3 ultimate farewell 2022 04 07 Stable AngularJS and Long Term Support AngularJS is No More The Future of TypeScript and Angular 2 Memento des Originals vom 31 Januar 2017 im Internet Archive nbsp Info Der Archivlink wurde automatisch eingesetzt und noch nicht gepruft Bitte prufe Original und Archivlink gemass Anleitung und entferne dann diesen Hinweis 1 2 Vorlage Webachiv IABot www agriya com Golo Roden Webanwendungen mit AngularJS Heise Online 13 September 2013 abgerufen am 2 September 2019 API Reference ngMock In angularjs org Abgerufen am 2 September 2019 englisch ngRoute In AngularJS Developer Documentation Abgerufen am 2 Oktober 2013 englisch ngView In AngularJS Developer Documentation Abgerufen am 2 Oktober 2013 englisch AngularUI for AngularJS Abgerufen am 27 August 2014 englisch UI Router JsWiki de das deutsche Wiki rund um JavaScript Nicht mehr online verfugbar Archiviert vom Original am 2 April 2015 abgerufen am 19 Marz 2015 nbsp Info Der Archivlink wurde automatisch eingesetzt und noch nicht gepruft Bitte prufe Original und Archivlink gemass Anleitung und entferne dann diesen Hinweis 1 2 Vorlage Webachiv IABot jswiki de Golo Roden Verschachtelte Ansichten mit AngularJS In Heise Developer Verlag Heinz Heise 6 Mai 2013 abgerufen am 2 Oktober 2013 angular route segment com Abgerufen am 19 Marz 2015 englisch Angular Route Segment JsWiki de das deutsche Wiki rund um JavaScript Nicht mehr online verfugbar Archiviert vom Original am 2 April 2015 abgerufen am 19 Marz 2015 nbsp Info Der Archivlink wurde automatisch eingesetzt und noch nicht gepruft Bitte prufe Original und Archivlink gemass Anleitung und entferne dann diesen Hinweis 1 2 Vorlage Webachiv IABot jswiki de Using location In AngularJS Developer Documentation Abgerufen am 2 Oktober 2013 englisch AngularDart Superheroic MVW Framework for Dart ANGULARDART AngularJS auf Dart portiert golem de 6 November 2013 Abgerufen von https de wikipedia org w index php title AngularJS amp oldid 234750028