Développement JavaScript avec AngularJS
Description
AngularJS a été créé pour développer des applications Web professionnelles, maintenables et portables. Cette formation permet d'appréhender les facettes du développement d'une application complète.
Méthodes pédagogiques
Formation avec un minimum de 50% de travaux pratiques. La session alterne les présentations théoriques avec les exercices en groupe ou individuels. Des versions numériques de tous les documents sont remises aux participants (support de cours, énoncés, corrigés).
Participants
Ce cours s'adresse aux développeurs, architectes ou chefs de projet, connaissant déjà le langage HTML et souhaitant apprendre à mettre en place des applications Web utilisant le langage JavaScript.
Pré requis
- Connaître le langage HTML et les technologies du web
- Connaître les bases de Javascript
Programme
Les grandes lignes d’AngularJS
Présentation d’AngularJS.
- Data binding bidirectionnel
- Séparation de la logique et des vues, contrôleurs et contextes
- Pattern MVVM : Model View ViewModel
- AngularJS et HTML5
Contrôleurs et contextes
Gestion des portées ...
- Fonctionnement des contrôleurs
- Modèle et contexte, hiérarchie des contextes
- Création d’un contexte enfant par certaines directives
- Evénements utilisateur : $scope.emit(), $scope.broadcast(), $scope.on()
Les vues, moteur de template et binding d’AngularJS
Les templates de vues.
- Utilisation des contrôleurs dans les vues
- Principales directives pour l’affichage, les champs de saisie, les répétitions, les actions utilisa
- Langage d’expressions, syntaxe, appel de méthodes et utilisation de filtres
- Inclusion de templates, et templates “inline”
Debug d’AngularJS
Comment gérer la mise au point
- Méthodes utiles de l’objet angular.
- Utilisation de Batarang
- Interception des exceptions avec le service $exceptionHandler
Les tests automatisés
Comment gérer le test unitaire
- Tests unitaires avec Jasmine et Testacular
- Tester les contrôleurs, tester les services
- Injection des dépendances et mock objects
- Service $httpBackend du module ngMock pour les tests unitaires
- Tests fonctionnels (End-to-End) avec “Angular Scenario Runner”
Le fonctionnement interne d’AngularJS
Les fonctionnalités sous jacentes.
- Le DOM comme template : compilation en deux phases des templates, intérêt des directives ng-src, ng-bind-template et ng-cloak
- Rafraîchissement des templates : les “watchers” créés par les directives de binding ou par $scope.$watch(...), boucle $digest et liste des $watch, intérêt de l’approche “dirty checking” d’AngularJS
- Cadre d’exécution d’AngularJS : exécuter du code dans le cadre d’AngularJS depuis l’extérieur avec $apply(...)
Application mono-page multi-vues, et routage
Paramètrage pour une page.
- Configuration du routage avec $routeProvider
- Paramètres de l’URL
- $route et historique du navigateur
- Avantages et inconvénients des “hash-bang URIs”
- Effectuer des traitements avant le chargement d’une vue
Les formulaires
Formulaire et contrôles.
- Eléments de formulaire
- Validation des données du formulaire
Echanges avec le serveur
Echanges de données.
- Service $http, et intercepteurs de réponse
- Service $resource pour les API de type “REST”
- Utilisation de “Server-Sent Events” ou de “WebSocket” avec AngularJS
L’API de “promise”
Définition de template.
- Fonctionnement des promises
- Utilisation des promises dans le binding des templates
- Asynchronisme et enchaînement de tâches avec des promises
- Utilisation des promises dans le service $http
Application et modules
Modularité.
- Création d’un module
- Configuration d’un module
- Démarrage automatique ou manuel d’une application
- Utilisation des modules pour partager des services entre applications
Services et injection des dépendances
Principe d'injection de donnée.
- Les différentes méthodes pour créer un service : factory(), ...
- Injection des services dans les contrôleurs et dans d’autres services
- Injection des dépendances et minimisation du code JavaScript
- Configuration des services, $injector
Filière
Code
CP-ANG
Durée
4 jours
Tarif
1990 € HT
Sessions
Nous contacter
01 39 50 2000