Upgrade to Pro — share decks privately, control downloads, hide ads and more …

AngularJS HTML5-Anwendungen im Silverlight-Stil

Ingo Rammer
March 06, 2014
320

AngularJS HTML5-Anwendungen im Silverlight-Stil

Ingo Rammer

March 06, 2014
Tweet

More Decks by Ingo Rammer

Transcript

  1. Ingo Rammer • Gründer und technischer Consultant bei thinktecture •

    Mein Fokus – Unterstützung von Entwickler von verteilten, mobile Business-Anwendungen – HTML5/JavaScript auf Windows, iOS, Android – Interoperabilität von HTML5 mit nativem Code auf allen Plattformen @ingorammer [email protected] http://www.thinktecture.com Demos: https://github.com/ingorammer/talk-AngularJS Slides: https://speakerdeck.com/ingorammer think mobile!
  2. AngularJS • http://angularjs.org/, v1.2.x • HTML-zentrische SPAs – ("HTML enhanced

    for web apps!") • Komponenten aus JS + HTML • Einbettbar, DI-basierend, testbar • Corporate Sponsor: Google
  3. AngularJS: View • HTML mit Angular-Attributen (Direktiven) – ng-model, ng-app,

    ng-controller, … – {{meinObjekt.meinFeld}} – {{meinObjekt.meineMethode()}} • Erweiterbar: eigene Tags, Attribute
  4. AngularJS: Controller • Business-Logik • Felder auf $scope  sichtbar

    in der View • KEINE DOM-Manipulationen im Controller!
  5. AngularJS: $scope • ViewModel in AngularJS: $scope • Wird dem

    Controller per Dependency- Injection bereitgestellt • Aktualisierung des GUI: Digest-Zyklus • $apply, um einen Zyklus auszulösen – Directives, Services, Controller
  6. AngularJS: Directives • Komponenten (HTML + JS) • Kapseln DOM-Manipulationen

    • Bekommen Daten aus dem $scope • Applikationsspezifisch oder unabhängig (zB angular-UI) • Können existierende Bibliotheken kapseln
  7. AngularJS: Services • Werden per Dependency Injection (DI) an Controller,

    Directives und andere Services im Konstruktor übergeben • Allgemeine Logik, die nicht von einem einzelnen Use-Case abhängt (sonst: Controller) • Achtung bei Minification (array-syntax oder $inject)
  8. AngularJS • Struktur, die bis zu großen JS Apps skaliert

    – Controller, $scope – DOM-Views, Model-Binding – Directives – Routing – Services – Promises • Keine DOM-Manipulationen im Controller! Meist Directives. Selten Services.