WikiDer > AngularJS
AngularJS | ||||
| Entwickler | Brat Tech LLC, Google und kollektiv. | |||
| Letzte Version | 1.8.2 die Info (21. Oktober 2020) | |||
| Status | Aktiv | |||
| Betriebssystem | Multiplattform | |||
| Geschrieben in | Javascript | |||
| Kategorie | JavaScript-Framework | |||
| Lizenz | MIT-Lizenz | |||
| Versionskontrolle | github.com | |||
| Webseite | (und) Projektseite | |||
| ||||
AngularJS, neueste Version heißt Eckig, ist ein Open SourceInternetanwendungRahmen die gepflegt wird von Google und ein Kollektiv von einzelnen Entwicklern und Unternehmen, die die Entwicklungsmöglichkeiten erkunden Einseitige Anwendungen (SPA) zu verbessern. Das Ziel ist es, sowohl die Entwicklung wenn es zu testen solcher Anwendungen durch die Bereitstellung eines Rahmens für KundenseiteModel View Controller (MVC)-Architektur, zusammen mit Komponenten, die häufig in Rich-Internet-Anwendungen.
Das Framework funktioniert von first de HTMLSeite, die zusätzliche HTML-spezifische Attribute enthält. Diese Attribute werden interpretiert als Richtlinien (Deutsch: Richtlinien)[1] die dazu führen, dass Angular Eingabe- oder Ausgabekomponenten der Seite einem standardmäßig dargestellten Modell zuordnet JavascriptVariablen. Die Werte dieser JavaScript-Variablen können im Code festgelegt oder aus statischen oder dynamischen abgerufen werden JSON-Datenobjekte.
Die Architektur
Design-Prinzipien
Angular wurde auf der Grundlage gebaut, dass deklarative Programmierung sollte zum Bauen verwendet werden Benutzeroberflächen und verlinken Softwarekomponenten, während zwingende Programmierung besser geeignet, um Geschäftslogik zu definieren.[2] Das Framework verwendet traditionelles HTML und erweitert es um dynamische Inhalte (Englisch: Inhalt) zur Darstellung mittels Zweiwege-Datenkopplung (Englisch: Zwei-Wege-Datenbindung), die eine automatische Synchronisierung von Modellen und Ansichten ermöglicht. Dadurch entfällt mit Angular die Notwendigkeit, Dokumentobjektmodell (DOM) sinkt, mit dem Ziel, die Testbarkeit und Performance zu erhöhen (de Performance) verbessern.
Zu den Designzielen von Angular gehören:
- Entkoppeln Sie die Manipulation des DOM von der Anwendungslogik. Dies verbessert die Testbarkeit der Programmcode.
- Gehen Sie davon aus, dass das Testen der Anwendung genauso wichtig ist wie die Entwicklung. Die Testbarkeit wird stark von der Struktur des Codes beeinflusst.
- Steck es aus Klient-Teil einer Bewerbung des Server-Teil. Dies ermöglicht eine parallele Durchführung der Entwicklungsarbeit und eine beidseitige Wiederverwendung der Software.
- Stellen Sie eine Struktur für den gesamten Prozess des Erstellens einer Anwendung bereit: Entwerfen der Benutzeroberfläche, Schreiben der Geschäftslogik und Testen.
Angular implementiert das Model-View-Controller-Modell Designmuster Datenmodell (Model), Datenpräsentation (View) und Anwendungslogik (Controller) zu trennen. Unter Verwendung von Abhängigkeitsspritze Angular bringt Dienstleistungen traditionell in die Serverseite wurden wie ansichtsabhängige Controller implementiert, um die Kundenseite der Webanwendung. Dadurch wird ein Teil der Last vom Server genommen.
Starten (Englisch: Bootstrapping)
Die Aufgaben der Angular Bootstrapper[3] werden nach dem Laden des DOM in drei Stufen ausgeführt:
- Laden der Methode, die mit dem verknüpft ist ng App-Richtlinie
- Erstellung eines neuen Injektor
- Zusammenstellung der Richtlinien, die den dynamischen Teil des DOM . bilden
Zwei-Wege-Datenverbindung
Die bidirektionale Datenkopplung ist eine der bemerkenswertesten Eigenschaften von Angular.[4] Diese Funktion reduziert die Codemenge, da der Backend-Server nicht mehr für das Ausfüllen von Vorlagen verantwortlich ist. Stattdessen werden Vorlagen in einfachem HTML erstellt, wobei die Daten in a . gespeichert sind Umfang[5] im Modell definiert. EIN Umfang in Angular ist ein Objekt, das auf das Anwendungsmodell verweist. Es ist eine Umgebung (Englisch: Kontext) innerhalb welcher Ausdrücke ausgeführt werden kann. Bereiche sind in einer hierarchischen Struktur organisiert, die die DOM-Struktur der Anwendung nachahmt. Das $Scopeservice in Angular erkennt Änderungen im Modellbereich und aktualisiert HTML-Ausdrücke in der Ansicht über a Regler. Außerdem werden alle Änderungen in der Ansicht im Modell widergespiegelt. Dadurch ist eine aktive Manipulation des DOM nicht mehr erforderlich und dies fördert eine schnelle Entwicklung von Prototypen von Webanwendungen[6].Angular entdeckt Änderungen in Modellen, indem es Werte mit zuvor gespeicherten Werten in einem Prozess vergleicht, der schmutzige Überprüfung wird genannt[7]. Dies steht im Gegensatz zu ember.js und backbone.js, die beim Ändern von Werten im Modell verwendet werden Zuhörer, Software, die auf bestimmte Ereignisse reagiert (Englisch: Veranstaltungen) wie Benutzeraktionen.
Wichtige Richtlinien
Angular-Direktiven sind Markierungen für ein DOM-Element (wie ein Attribut, ein Elementname, ein Kommentar oder eine CSS-Klasse), die bewirken, dass der HTML-Compiler von Angular diesem DOM-Element ein bestimmtes Verhalten zuordnet. Angular enthält eine Reihe von integrierten Direktiven, Entwickler können jedoch auch selbst benutzerdefinierte Direktiven erstellen. Einige der am häufigsten verwendeten Standardrichtlinien sind:
- ng App
- erklärt es Wurzelelement (das höchste Element in der Struktur) einer Angular-Anwendung, unter der Direktiven verwendet werden können, um Datenlinks zu deklarieren und Verhalten zu definieren.
- ng-bind
- setzt den Text eines DOM-Elements auf den Wert von a Ausdruck.
<span ng-bind="naam"></span>zeigt beispielsweise den Wert der Variablen 'name' im Span-Element an. Alle Änderungen an der Variablen 'name' im Geltungsbereich der Anwendung werden sofort im DOM widergespiegelt. - ng-Modell
- ähnlich wie ng-bind, aber diese Direktive entwickelt eine bidirektionale Datenverbindung zwischen der Ansicht und dem Scope.
- ng-Modell-Optionen
- ermöglicht Ihnen festzulegen, wie Änderungen am Modell vorgenommen werden.
- ng klasse
- macht es möglich C.S.SKlassenattribute dynamisch mit einem HTML-Element verknüpfen. Dies geschieht über einen Datenlink eines Ausdrucks, der die hinzuzufügenden CSS-Klassen repräsentiert.
- ng-Controller
- fügt der Ansicht eine JavaScript-Controller-Klasse hinzu. Dies ist ein entscheidender Teil der Implementierung des Model-View-Controller-Entwurfsmusters durch Angular. Controller-Klassen enthalten die Geschäftslogik hinter der Anwendung, sie stellen den Umfang mit Funktionen und Werten zur Verfügung.
- ng wiederholen
- ein Element einmal pro Element aus einer Sammlung instanziieren.
- ng-anzeigen & ng-ausblenden
- zeigt oder verbirgt ein Element basierend auf einer Bedingung, abhängig vom Wert von a booleschAusdruck. Das Ein- und Ausblenden erfolgt durch Einstellen der C.S.SPräsentationsstil.
- ng schalter
- Instanziieren einer Vorlage aus einer Reihe von Auswahlmöglichkeiten basierend auf einer Bedingung, abhängig vom Wert eines Ausdrucks.
- ng Ansicht
- die für die Handhabung verantwortliche Richtlinie Routen die gekennzeichnet sind durch indicated URLs. Durch das Definieren von Routen werden Vorlagen angezeigt, die von bestimmten Controllern gesteuert werden.
- ng-wenn
- Diese Direktive entfernt einen Teil des DOM oder zeigt ihn neu an, basierend auf einem Ausdruck, der den Wert enthält wahr ('wahr oder falsch ('false') annehmen kann. Wenn der Ausdruck falsch , wird das Element aus dem DOM entfernt. Wenn der Ausdruck wahr ist, wird eine Instanz des Elements (wieder) eingefügt.
Chrome-Plug-in
Im Juli 2012 baute das Angular-Team ein Plugin für die Google ChromeBrowser namens Batarang[8], die beim Debuggen hilft (debuggen) in Webanwendungen, die mit Angular erstellt wurden. Dieses Plugin hilft, Leistungsprobleme schnell zu entdecken, und es enthält a grafische Benutzeroberfläche zum Debuggen von Anwendungen.[9] Es wurden Probleme mit Batarang in Kombination mit neueren Angular-Versionen (nach v1.2.x) gemeldet.[10]
Unterstützung für ältere Browserversionen
Angular Release 1.2 und höher werden nicht unterstützt Internet Explorer Version 6 oder 7.[11] Ab Angular Release 1.3 wurde die Unterstützung für Internet Explorer 8 eingestellt.[12]
Geschichte
Angular wurde ursprünglich 2009 von Miško Hevery und Adam Abrons . entwickelt[13] von der Firma Brat Tech LLC[14] als Software hinter einem Online JSONSpeichergerät mit einem Preis pro Megabyte, um die Entwicklung von Anwendungen für das Unternehmen zu vereinfachen. Dieses Unternehmen befand sich auf der Web-Domain 'GetAngular.com' und hatte einige Abonnenten, bevor die beiden beschlossen, das Geschäftsmodell aufzugeben und Angular als Open-Source-Framework zu veröffentlichen.
Abrons hat das Projekt verlassen, aber Hevery, der bei . arbeitet Google, das Framework gemeinsam mit den Google-Mitarbeitern Igor Minár und Vojta Jína weiter entwickelt und gepflegt.[15]
Angularjs-Veröffentlichungen
Die Releases 1.0.x, 1.2.x, 1.3.x, 1.4.x und 1.5.x sind die stabilen Versionen, während 1.1.x in einigen Subversionen Änderungen enthielt, die dazu führten, dass zuvor erstellte Software fehlschlug (sie enthalten "breaking changes").
Das Codenamen Stehen im Zusammenhang mit Superhelden, sie bestehen aus zwei Wörtern mit Bindestrich, die "nett / verrückt / cool" klingen sollten und öffentlich zur Abstimmung freigegeben werden.[16]
| Veröffentlichungsdatum | Ausführung | Code Name |
|---|---|---|
| 20. Oktober 2010 | 0.9.0 | Drachenatem (instabil) |
| 26. Oktober 2010 | 0.9.1 | Abstoßungsfeld (instabil) |
| 3. November 2010 | 0.9.2 | Fauna-Mimikry (instabil) |
| 10.11.2010 | 0.9.3 | Kältebeständigkeit (stabil) |
| 18. November 2010 | 0.9.4 | totaler Rückruf (instabil) |
| 25. November 2010 | 0.9.5 | Truthahnexplosion (stabil) |
| 6. Dezember 2010 | 0.9.6 | Nachtsicht (instabil) |
| 10. Dezember 2010 | 0.9.7 | Schallschrei (instabil) |
| 23. Dezember 2010 | 0.9.8 | Astral Projektion (stabil) |
| 13. Januar 2011 | 0.9.9 | Zeitverschiebung (instabil) |
| 26. Januar 2011 | 0.9.10 | Flohflüsterer (stabil) |
| 8. Februar 2011 | 0.9.11 | Schneemacher (instabil) |
| 3. März 2011 | 0.9.12 | Gedankenimplantierer (instabil) |
| 13. März 2011 | 0.9.13 | gerinnen-starre (instabil) |
| 1. April 2011 | 0.9.14 | Schlüsselhersteller (stabil) |
| 11. April 2011 | 0.9.15 | tödliches Stottern (stabil) |
| 7. Juni 2011 | 0.9.16 | Wetterkontrolle (instabil) |
| 30. Juni 2011 | 0.9.17 | Gemüsereanimation (instabil) |
| 29. Juli 2011 | 0.9.18 | Wackel-Armfett (instabil) |
| 20. August 2011 | 0.9.19 | Psychokinese bei Hunden (instabil) |
| 2. September 2011 | 0.10.0 | Hühnerhände (instabil) |
| 9. September 2011 | 0.10.1 | unerbittlich-molochju (instabil) |
| 8. Oktober 2011 | 0.10.2 | hinterhältige Möwe (instabil) |
| 13. Oktober 2011 | 0.10.3 | erschütternder Herzschlag (instabil) |
| 22. Oktober 2011 | 0.10.4 | menschliche Fackel (instabil) |
| 8. November 2011 | 0.10.5 | Stahlfaust (stabil) |
| 17. Januar 2012 | 0.10.6 | Luftpolsterumhang (instabil) |
| 13. Juni 2012 | 1.0.0 | zeitliche Herrschaft (stabil) |
| 25. Juni 2012 | 1.0.1 | Thoriumabschirmung (stabil) |
| 31. August 2012 | 1.0.2 | schwächend-großartig (stabil) |
| 31. August 2012 | 1.1.0 | erhöhen-gravitas (stabil) |
| 26. November 2012 | 1.0.3 | hüpfender Donner (stabil) |
| 26. November 2012 | 1.1.1 | pathologisches Kerning (instabil) |
| 22. Januar 2013 | 1.0.4 | verwirrendes-haar (stabil) |
| 22. Januar 2013 | 1.1.2 | Tofu-Animation (instabil) |
| 20. Februar 2013 | 1.0.5 | Blähungsantrieb (stabil) |
| 22. Februar 2013 | 1.1.3 | radioaktiv-gurgeln (stabil) |
| 3. April 2013 | 1.1.4 | Quantenmanipulation (instabil) |
| 04.04.2013 | 1.0.6 | universelle Irreversibilität (stabil) |
| 22. Mai 2013 | 1.0.7 | monochromatisch-regenbogen (stabil) |
| 22. Mai 2013 | 1.1.5 | Dreieck-Quadrifikation (instabil) |
| 22. August 2013 | 1.0.8 | Blase geplatzt (stabil) |
| 8. November 2013 | 1.2.0 | pünktliche Lieferung (stabil) |
| 14. November 2013 | 1.2.1 | Empathie unterstreichen (stabil) |
| 22. November 2013 | 1.2.2 | Bewusstseinsträgheit (stabil) |
| 27. November 2013 | 1.2.3 | Einhorn-Zapper (stabil) |
| 6. Dezember 2013 | 1.2.4 | Wurmloch-Blaster (stabil) |
| 13. Dezember 2013 | 1.2.5 | Singularitätserweiterung (stabil) |
| 19. Dezember 2013 | 1.2.6 | Taco-Salafication (stabil) |
| 3. Januar 2014 | 1.2.7 | Emoji-Hellsehen (stabil) |
| 10. Januar 2014 | 1.2.8 | interdimensionale Kartographie (stabil) |
| 15. Januar 2014 | 1.2.9 | verzauberte Artikulation (stabil) |
| 24. Januar 2014 | 1.2.10 | Augmented-Serendipity (stabil) |
| 3. Februar 2014 | 1.2.11 | Kryptowährungs-Hyperdeflation (stabil) |
| 7. Februar 2014 | 1.2.12 | Blumenkohl-Ausrottung (stabil) |
| 14. Februar 2014 | 1.2.13 | romantische Übersetzung (stabil) |
| 1. März 2014 | 1.2.14 | lebhafte Kryokinese (stabil) |
| 21. März 2014 | 1.2.15 | Bären-unterschätzen (stabil) |
| 3. April 2014 | 1.2.16 | Dachs-Aufzählung (stabil) |
| 6. Juni 2014 | 1.2.17 | Quantenentflechtung (stabil) |
| 13. Juni 2014 | 1.2.18 | Verlängerung des Ohrs (stabil) |
| 1. Juli 2014 | 1.2.19 | präkognitive-flashbacks (stabil) |
| 11. Juli 2014 | 1.2.20 | versehentliche Verschönerung (stabil) |
| 25. Juli 2014 | 1.2.21 | Zauberer Requisiten (stabil) |
| 12. August 2014 | 1.2.22 | pingelig-vergnügen (stabil) |
| 22. August 2014 | 1.2.23 | oberflächlich-leiden (stabil) |
| 9. September 2014 | 1.2.24 | statisches Schweben (stabil) |
| 16. September 2014 | 1.2.25 | hypnotisch-gestikulieren (stabil) |
| 1. Oktober 2014 | 1.2.26 | fesselnd-desinteresse (stabil) |
| 13. Oktober 2014 | 1.3.0 | superluminal-stups (stabil) |
| 31. Oktober 2014 | 1.3.1 | Spektral-Hummer (stabil) |
| 7. November 2014 | 1.3.2 | kardiovaskuläre Vergrößerung (stabil) |
| 17. November 2014 | 1.3.3 | Unterwasser-Arithmetik (stabil) |
| 20.11.2014 | 1.2.27 | Primfaktorzerlegung (stabil) |
| 24. November 2014 | 1.3.4 | highfalutin-petroglyph (stabil) |
| 1. Dezember 2014 | 1.3.5 | Kybernetischer Merkantilismus (stabil) |
| 8. Dezember 2014 | 1.3.6 | Robofunky-Danceblaster (stabil) |
| 15. Dezember 2014 | 1.2.28 | Finish-Ausschiffung (stabil) |
| 15. Dezember 2014 | 1.3.7 | undichtes Hindernis (stabil) |
| 19. Dezember 2014 | 1.3.8 | prophetisch-narwal (stabil) |
| 29. September 2015 | 1.2.29 | Ultimative Einstellung (stabil) |
| 19.11.2015 | 1.4.8 | Eismanipulation (stabil) |
| 21. Januar 2016 | 1.4.9 | implizite Superannuation (stabil) |
| 5. Februar 2016 | 1.5.0 | Veredelung-Erleichterung (stabil) |
| 15. Juni 2016 | 1.5.7 | Sechskant-Umlauf (stabil) |
| 22. Juli 2016 | 1.5.8 | willkürliche Fallbacks (stabil) |
| 24. November 2017 | 1.6.7 | Imperial-Rückenschwimmen (stabil) |
| 18. Dezember 2018 | 1.6.8 | wohltuende Tinktur (stabil) |
| 2. Februar 2018 | 1.6.9 | feuriger Basilisk (stabil) |
| 17. April 2018 | 1.6.10 | kristalline Überzeugung (stabil) |
| 11. Mai 2018 | 1.7.0 | nichtexistent-physiologie (stabil) |
| 8. Juni 2018 | 1.7.1 | Schwung-Trotz (stabil) |
| 12. Juni 2018 | 1.7.2 | extreme Kompatibilität (stabil) |
| 3. August 2018 | 1.7.3 | ereignisreicher-vorschlag (stabil) |
| 7. September 2018 | 1.7.4 | interstellare Erforschung (stabil) |
| 4. Oktober 2018 | 1.7.5 | Anti-Verschönerung (stabil) |
| 17. Januar 2019 | 1.7.6 | Schwerkraft-Manipulation (stabil) |
| 4. Februar 2019 | 1.7.7 | königlich ausgehen (stabil) |
| 11. März 2019 | 1.7.8 | begeisterte Opfergabe (stabil) |
| 19.11.2019 | 1.7.9 | Beseitigung der Umweltverschmutzung(stabil) |
| 1. Juni 2020 | 1.8.0 | Nested-Impfung (stabil) |
| 30. September 2020 | 1.8.1 | sich gegenseitig unterstützen(stabil) |
| 21. Oktober | 1.8.2 | meteorischer Bergbau (stabil) |
Zukünftige Entwicklungen
Parallel dazu wird an drei neuen Versionen von Angular gearbeitet:
- Release 1.x.x, das auf der aktuellen Version aufbaut. Dieser Zweig heißt AngularJS.
- Das Release 2.0 soll eine Vielzahl von Verbesserungen bringen sowie Angular deutlich schneller und einfacher machen mit einem Ansatz, der durch inkrementelle Schritte auf Basis der 1.x-Releases nicht realisierbar ist.[17]
- Angular 4 wurde am 13. Dezember 2016 angekündigt, Version 3 wird übersprungen, um Verwechslungen mit einem NPM-Paket zu vermeiden, das unter dem Namen v3.3.0 vertrieben wird.[18] Version 4 ist abwärtskompatibel mit Angular 2.
Vergleich mit Backbone.js
- Datenverbindung
- Die bemerkenswerteste Funktion der Angular- und .-Frameworks backbone.js zeichnet sich durch die Art und Weise aus, in der Modelle und Ansichten synchronisiert werden. Während Angular die bidirektionale Datenverknüpfung unterstützt, verlässt sich Backbone.js stark auf duplizierten Code (Englisch: Boilerplate-Code), um seine Modelle und Ansichten auszurichten.[19]
- SICH AUSRUHEN
- Backbone.js kommuniziert gut mit RUHIG Dienstleistungen in der Backend. Auch bei Angular ist die Anwendung von REST-APIs einfach möglich mit dem $Ressource-Bedienung. Angular hat auch a $httpDienst, der flexibler ist und Verbindungen zu entfernten Servern über a XMLHttpAnfrageObjekt aus dem Browser oder über JSONP-Code.
- Vorlagen
- Die Vorlagenanwendungsfunktionen von Angular verwenden eine Kombination aus anpassbaren HTML-Tags und Ausdrücken. Backbone.js kommt mit dem Vorlage()-Die Funktion von unterstrich.js und lässt sich auch in andere Templating-Software integrieren, wie z Schnurrbart.
Literatur
- (und) Grün, Brad; Shyam Seshadri, AngularJS. O'Reilly Media (April 2013), S. 196,. ISBN 978-1-4493-4485-6 .
- (und) Kozlowski, Pawel; Peter Darwin, Beherrschen der Webanwendungsentwicklung mit AngularJS. Packt Publishing Limited (April 2013), S. 372,. ISBN 978-1-7821-6182-0 .
- (und) Ford, Brian; Lukas Rübbelke, AngularJS in Aktion. Manning Publications (April 2015 (geplanter Termin)), S. 325,. ISBN 978-1-6172-9133-3 .
Siehe auch
- Client-Server-Modell
- HTML-Skripting
- Javascript
- Rich-Internet-Anwendung
- Serverseitiges Skripting
- Web Entwicklung
Externe Links
- (und) AngularJS-Projektseite
- (und) ng-conf - Angular-Konferenz in den USA
- (und) ng-europe - Winkelkonferenz in Europa
- (und) AngularJS-Modulbibliothek (archiviert)
- (und) Mit AngularJS erstellte Anwendungen (archiviert)
- (und) AngularJS in Google Groups
- (und) AngularJS bei Google (archiviert)
- (und) Batarang Chrome-Plugin auf Github Gi
- (und) NG-CONF 2014 Videos und Folien (archiviert)
- (und) NG-EUROPE 2014 Videos und Folien (archiviert)
- (und) AngularSpot, Kollektiv von AngularJS-Entwicklern (archiviert)
- (und) Vergleich von Anwendungsframeworks mit AngularJS sind gebaut (archiviert)
- (und) Videoschulung für AngularJS
- (und) AngularJS-Entwicklerblog
| Quellen, Anmerkungen und/oder Verweise Dieser Artikel oder eine frühere Version ist eine (Teil-)Übersetzung des Artikels AngularJS auf der englischsprachigen Wikipedia, die unter der Creative Commons Namensnennung/Weitergabe unter gleichen Bedingungen Stürze. Siehe die Verlauf bearbeiten Dort.
|
| Siehe die Kategorie AngularJS von Wikimedia Commons für Mediendateien zu diesem Thema. |