Skip to content

Latest commit

 

History

History
99 lines (66 loc) · 3.12 KB

20151117_Softeam_presentation-AngularJS.adoc

File metadata and controls

99 lines (66 loc) · 3.12 KB

2015/11/17 - Softeam 12@13 - Présentation de AngularJS

Table of Contents

Notes

Présenté par Lanto

  • SPA : single page application

    • Le serveur ne fait que renvoyer des data, tout le métier, la logique est côté client, sur le navigateur.

  • Framework MVW (Model View Whatever), open-source, créé par Google (mi chemin MVC / MVVM (Model View ViewModel))

    • Développement SPA Restful

    • Injection de dépendances

    • contrôleur côté client

💡
Site Plunker pour démarrer très vite un projet JavaScript.
  • {{::maVariable}} les "::" sont là pour ne plus watcher la variable, qui ne sera donc pas réévaluée.
    Sans ces "::" maVariable aurait un watcher d’associé.

  • Les blocs AngularJS sont déclarés via des div avec attribut ng-controller.

    • Ces blocs div délimitent également le scope des variables.

    • Pour partager des variables entre bloc, il faut utiliser une factory

      • bien plus performant qu’un broadcast de toute la page qui va toucher tous les contrôleurs

      • Le broadcast est vraiment la solution de dernier recours (car relance toute la boucle événementielle)

  • {{ maVariable }} : évaluation de maVariable par mapping bidirectionnel

  • Directive ng-repeat pour répéter des éléments, MAIS avec un scope différent à chaque itération.

    • Ex : <tr ng-repeat="p in personnes…​

    • ng-repeat est un attribut de la balise "tr" (mais peut être un attribut de n’importe quelle balise)

  • De manière générale, ng- pour les *directives prédéfinies.

💡
utiliser 'use strict'; pour un contrôle fort du typage.
  • Promise ~ Future de Java 8

    • Les promise sont l’apanage d’un langage asynchrone (comme AngularJS)

⚠️
  • On ne fait pas d’application AngularJS pour remplacer un tableur Excel.

  • gaffe aux grosses appli (= masse de contrôleur)

  • ne pas hésiter à abuser du CTRL+F5 pour ne pas être victime du cache du navigateur.

  • Pour les tests unitaires : Karma, Mocha