SlideShare ist ein Scribd-Unternehmen logo
1 von 6
Downloaden Sie, um offline zu lesen
Page 1
Cours de Programmation Web
Présentation du framework AngularJS
Yacine Rezgui – Cédric Ferretti
AngularJS
Présentation du framework AngularJS
Page 2
Cours de Programmation Web
Présentation du framework AngularJS
Yacine Rezgui – Cédric Ferretti
Table des matières
AngularJS, qu’est-ce que c’est ?.............................................................................................................. 3
Gestion de la vue........................................................................................................................................ 4
Syntaxe..................................................................................................................................................... 4
Two-way data binding........................................................................................................................... 4
Ng-*........................................................................................................................................................... 4
Les filtres.................................................................................................................................................. 5
La partie logique......................................................................................................................................... 5
Les services.............................................................................................................................................. 5
Les contrôleurs ....................................................................................................................................... 5
Le routing................................................................................................................................................. 5
Quels sont ses inconvénients ? ............................................................................................................... 6
Pourquoi choisir ce framework ?............................................................................................................ 6
Page 3
Cours de Programmation Web
Présentation du framework AngularJS
Yacine Rezgui – Cédric Ferretti
AngularJS, qu’est-ce que c’est ?
AngularJS est un framework JavaScript, créé en octobre 2010 par des
développeurs de chez Google et sous la licence MIT.
Il propose une architecture basée sur le pattern MVC (Model View Controller)
pour des SPA (Single Page Application), autrement dit des applications web où
la navigation se fait sur une même et unique page (exemple : Gmail, Dropbox,
iCloud, etc.).
Il a été créé avec la philosophie suivante :
Le HTML est très bien pensé pour les documents statiques mais il n’est pas du
tout adapté pour un usage dynamique tel qu’on le voit dans les applications
web. AngularJS enrichie le HTML avec une grammaire similaire, spécialement
conçue pour des RIA (Rich Internet Application). Le résultat est un code
parfaitement expressif (on comprend chaque action effectuée à sa simple
lecture), lisible (ça reste du HTML) et facile à écrire.
La principale caractéristique de ces frameworks est qu’un grand nombre
d’actions effectuées sur le serveur tel que le rendu du moteur de template, la
récupération des données, leur (pré) validation et la navigation dans une
application, sont désormais déportés côté client.
Le serveur se limite à traiter, vérifier, valider et envoyer les données aux clients
dans un format générique (JSON, XML, etc.)
Cela permet d’avoir une charge sur les serveurs nettement moins importante
et une fluidité de navigation chez le client.
Page 4
Cours de Programmation Web
Présentation du framework AngularJS
Yacine Rezgui – Cédric Ferretti
Gestion de la vue
AngularJS se différencie de ses concurrents par une gestion facultative du DOM
(Document Object Model) de l’application. Contrairement à Backbone.js et
d’autres frameworks, AngularJS permet de développer une RIA sans devoir
utiliser des sélecteurs d’éléments HTML afin de rendre une application
interactive.
Syntaxe
La syntaxe des templates de la vue se résume à du HTML, avec des attributs
spécifiques (ng-*) et un affichage de variables à l’aide d’accolades
Ex : <h1>The sum of 2+3 = {{2 + 3}}!</h1>
Two-way data binding
Une de ses fonctionnalités phares est le two-way data binding qui permet de
notifier tous les éléments qui font référence à une variable, de son
changement. Ainsi sans coder explicitement du JavaScript, on peut mettre à
jour en temps réel un titre qui fait référence à un champ texte.
Ex : <input type="text" ng-model="yourName"><h1>Hello {{yourName}}!</h1>
Ng-*
AngularJS propose une liste d’attributs propres aux éléments HTML comme ng-
disabled pour les inputs, ng-multiple pour les selects et ng-click, ng-class, ng-
style pour tous les éléments (ng-* est un préfixe permettant de différencier les
vrais attributs HTML de ceux d’AngularJS) permettant d’effectuer une action tel
qu’appeler une fonction, assigner une valeur à une variable, choisir une classe
suite à un évènement (clic, survol, envoi de formulaire) ou à un changement de
variable.
L’attribut ng-repeat permet l’affichage d’éléments d’un tableau d’une manière
très simple, en l’affectant à un template d’une balise HTML qui représente un
élément du tableau. (tab représente un tableau et el un de ses éléments)
Ex : <li ng-repeat="friend in friends">
Page 5
Cours de Programmation Web
Présentation du framework AngularJS
Yacine Rezgui – Cédric Ferretti
Les filtres
Actuellement, lors d’un affichage spécifique d’une donnée dans une page, on
effectue un traitement de la variable à afficher à l’aide d’une fonction dont on
insert le résultat dans une variable intermédiaire et enfin, on affecte le
innerHTML d’un élément.
AngularJS permet d’une manière plus aisée ce type d’affichage à l’aide du
caractère « | » suivi de la fonction qui transforme la donnée.
Ex : <p>default currency symbol ($): {{amount | currency}}</p>
AngularJS intègre déjà plusieurs filtres (date, monnaie, nombre, caractères
minuscules) mais aussi des filtres d’affichage (nombre maximum d’éléments,
recherche, tri).
Ex : <tr ng-repeat="friend in friends | limitTo: 10">
La partie logique
Les services
Les services sont des fonctions qui exécutent des tâches communes aux
contrôleurs. Ils permettent d’éviter une redondance du code. Ce sont des
singletons. AngularJS en propose plusieurs par défaut (routing, i18n, ajax,
scope, filter, etc.).
Les contrôleurs
Les contrôleurs sont tout simplement des fonctions qui acceptent en
paramètre des services prédéfinis comme $scope (qui permet d’avoir accès aux
propriétés et méthodes de la vue) ou $route (qui permet d’avoir accès au
moteur de gestion de navigation entre pages). Il peut être défini pour un
élément de la vue à l’aide de l’attribut ng-controller.
Le routing
Le système de gestion de la navigation d’une RIA s’appelle le « routing ». Dans
AngularJS, on peut paramétrer le choix du contrôleur et le template choisi pour
la vue (valeur en dur ou page externe) pour une route donnée.
Page 6
Cours de Programmation Web
Présentation du framework AngularJS
Yacine Rezgui – Cédric Ferretti
Quels sont ses inconvénients ?
Malgré sa facilité d’utilisation, la syntaxe utilisée et l’emplacement choisi
(directement dans la page HTML) suscitent une certaine repousse des
développeurs qui sont habitués à utiliser des moteurs de templates plus
classiques tel que EJS (syntaxe similaire à Smarty).
De plus, une bonne partie des librairies permettent d’ajouter des évènements,
modifier des éléments HTML avec les méthodes basiques JavaScript, là où
AngularJS nous pousse à utiliser ses méthodes qui sont assez différentes.
Il ne propose pas d’interface graphique comme ses concurrents Dojo et ExtJS
(framework permettant de coder entièrement une SPA sans utiliser du HTML).
Sa jeunesse et le manque d’entreprises l’utilisant en production lui font défaut
contrairement à Backbone.js qui a acquis à sa cause Linkedin et Foursquare.
Pourquoi choisir ce framework ?
AngularJS arrive à se démarquer de ses concurrents malgré la forte
concurrence qu’il existe entre les différents frameworks JavaScript.
Tout d’abord, le projet est développé par des développeurs de chez Google et il
est sponsorisé par leur entreprise, ce qui n’est pas négligeable pour la
pérennité du projet.
Comme cités précédemment, ses fonctionnalités et leur mise en place font
énormément gagner du temps aux développeurs.
AngularJS propose aussi les modules qui permettent de découper son SPA en
parties distinctes comme les namespaces et aussi les directives qui permettent
de redéfinir et ainsi étendre leurs possibilités (ex : <calendar> remplacerait un
widget complet en HTML, ce qui simplifie grandement la lisibilité du code).
De plus, AngularJS est utilisé en production sur l’application Youtube de la
PlayStation 3 ainsi que dans la nouvelle version de DoubleClick (régie
publicitaire appartenant à Google, destinée aux grands comptes).

Weitere ähnliche Inhalte

Was ist angesagt?

Débuter avec Rails::API & AngularJS
Débuter avec Rails::API & AngularJSDébuter avec Rails::API & AngularJS
Débuter avec Rails::API & AngularJSFrédéric DUPERIER
 
Angular JS - Paterne Gaye-Guingnido
Angular JS - Paterne Gaye-Guingnido Angular JS - Paterne Gaye-Guingnido
Angular JS - Paterne Gaye-Guingnido SOAT
 
Introduction à Angularjs
Introduction à AngularjsIntroduction à Angularjs
Introduction à AngularjsRossi Oddet
 
Symfony with angular.pptx
Symfony with angular.pptxSymfony with angular.pptx
Symfony with angular.pptxEsokia
 
Introduction à AngularJS
Introduction à AngularJSIntroduction à AngularJS
Introduction à AngularJSAbdoulaye Dieng
 
Front end, une île qui mérite d'être visitée
Front end, une île qui mérite d'être visitéeFront end, une île qui mérite d'être visitée
Front end, une île qui mérite d'être visitéeOuadie LAHDIOUI
 
Apéro techno node.js + AngularJS @Omnilog 2014
Apéro techno node.js + AngularJS @Omnilog 2014Apéro techno node.js + AngularJS @Omnilog 2014
Apéro techno node.js + AngularJS @Omnilog 2014Yves-Emmanuel Jutard
 
Angular Framework présentation PPT LIGHT
Angular Framework présentation PPT LIGHTAngular Framework présentation PPT LIGHT
Angular Framework présentation PPT LIGHTtayebbousfiha1
 
AngularJS et autres techno frontend
AngularJS et autres techno frontendAngularJS et autres techno frontend
AngularJS et autres techno frontendyllieth
 
Asp.net Tutorials de L'application "Organizer"
Asp.net Tutorials de L'application "Organizer"Asp.net Tutorials de L'application "Organizer"
Asp.net Tutorials de L'application "Organizer"Nazih Heni
 
Introduction à Angular 2
Introduction à Angular 2Introduction à Angular 2
Introduction à Angular 2Laurent Duveau
 
ENIB cours CAI Web - Séance 4 - Frameworks/Spring - Cours
ENIB cours CAI Web - Séance 4 - Frameworks/Spring - CoursENIB cours CAI Web - Séance 4 - Frameworks/Spring - Cours
ENIB cours CAI Web - Séance 4 - Frameworks/Spring - CoursHoracio Gonzalez
 
SPA avec Angular et SignalR (FR)
SPA avec Angular et SignalR (FR)SPA avec Angular et SignalR (FR)
SPA avec Angular et SignalR (FR)Rui Carvalho
 
Google : Prise en charge de l'Ajax et de l'Angular JS
Google : Prise en charge de l'Ajax et de l'Angular JSGoogle : Prise en charge de l'Ajax et de l'Angular JS
Google : Prise en charge de l'Ajax et de l'Angular JSPeak Ace
 

Was ist angesagt? (20)

Débuter avec Rails::API & AngularJS
Débuter avec Rails::API & AngularJSDébuter avec Rails::API & AngularJS
Débuter avec Rails::API & AngularJS
 
Angular JS - Paterne Gaye-Guingnido
Angular JS - Paterne Gaye-Guingnido Angular JS - Paterne Gaye-Guingnido
Angular JS - Paterne Gaye-Guingnido
 
Introduction à Angularjs
Introduction à AngularjsIntroduction à Angularjs
Introduction à Angularjs
 
Symfony with angular.pptx
Symfony with angular.pptxSymfony with angular.pptx
Symfony with angular.pptx
 
Introduction à AngularJS
Introduction à AngularJSIntroduction à AngularJS
Introduction à AngularJS
 
Front end, une île qui mérite d'être visitée
Front end, une île qui mérite d'être visitéeFront end, une île qui mérite d'être visitée
Front end, une île qui mérite d'être visitée
 
Apéro techno node.js + AngularJS @Omnilog 2014
Apéro techno node.js + AngularJS @Omnilog 2014Apéro techno node.js + AngularJS @Omnilog 2014
Apéro techno node.js + AngularJS @Omnilog 2014
 
Introduction à Angular
Introduction à AngularIntroduction à Angular
Introduction à Angular
 
Support cours angular
Support cours angularSupport cours angular
Support cours angular
 
Intro à angular
Intro à angularIntro à angular
Intro à angular
 
Présentation Angular 2
Présentation Angular 2 Présentation Angular 2
Présentation Angular 2
 
Angular Framework présentation PPT LIGHT
Angular Framework présentation PPT LIGHTAngular Framework présentation PPT LIGHT
Angular Framework présentation PPT LIGHT
 
Introduction à Angular
Introduction à AngularIntroduction à Angular
Introduction à Angular
 
Angular 2
Angular 2Angular 2
Angular 2
 
AngularJS et autres techno frontend
AngularJS et autres techno frontendAngularJS et autres techno frontend
AngularJS et autres techno frontend
 
Asp.net Tutorials de L'application "Organizer"
Asp.net Tutorials de L'application "Organizer"Asp.net Tutorials de L'application "Organizer"
Asp.net Tutorials de L'application "Organizer"
 
Introduction à Angular 2
Introduction à Angular 2Introduction à Angular 2
Introduction à Angular 2
 
ENIB cours CAI Web - Séance 4 - Frameworks/Spring - Cours
ENIB cours CAI Web - Séance 4 - Frameworks/Spring - CoursENIB cours CAI Web - Séance 4 - Frameworks/Spring - Cours
ENIB cours CAI Web - Séance 4 - Frameworks/Spring - Cours
 
SPA avec Angular et SignalR (FR)
SPA avec Angular et SignalR (FR)SPA avec Angular et SignalR (FR)
SPA avec Angular et SignalR (FR)
 
Google : Prise en charge de l'Ajax et de l'Angular JS
Google : Prise en charge de l'Ajax et de l'Angular JSGoogle : Prise en charge de l'Ajax et de l'Angular JS
Google : Prise en charge de l'Ajax et de l'Angular JS
 

Andere mochten auch

AngularJS performance & production tips
AngularJS performance & production tipsAngularJS performance & production tips
AngularJS performance & production tipsNir Kaufman
 
AngularJS 101 - Everything you need to know to get started
AngularJS 101 - Everything you need to know to get startedAngularJS 101 - Everything you need to know to get started
AngularJS 101 - Everything you need to know to get startedStéphane Bégaudeau
 
Angular 2 - Core Concepts
Angular 2 - Core ConceptsAngular 2 - Core Concepts
Angular 2 - Core ConceptsFabio Biondi
 
Introduction to Angular 2
Introduction to Angular 2Introduction to Angular 2
Introduction to Angular 2Knoldus Inc.
 
1 2 methodes_et_manuels_lien_xxi_2
1 2 methodes_et_manuels_lien_xxi_21 2 methodes_et_manuels_lien_xxi_2
1 2 methodes_et_manuels_lien_xxi_2TICE10AUBE
 
Sistema nervioso autonomo
Sistema nervioso autonomoSistema nervioso autonomo
Sistema nervioso autonomoSheila Covelly
 
Lunch & Learn : La tête dans les nuages? La vérité sur le Cloud pour les PME !
Lunch & Learn : La tête dans les nuages? La vérité sur le Cloud pour les PME !Lunch & Learn : La tête dans les nuages? La vérité sur le Cloud pour les PME !
Lunch & Learn : La tête dans les nuages? La vérité sur le Cloud pour les PME !Aurelium
 
Apports de la psychologie sociale à l&rsquo;intelligence économique
Apports de la psychologie sociale à l&rsquo;intelligence économiqueApports de la psychologie sociale à l&rsquo;intelligence économique
Apports de la psychologie sociale à l&rsquo;intelligence économiqueInter-Ligere
 
Améliorez votre Carrière grâce aux Réseaux Sociaux
Améliorez votre Carrière grâce aux Réseaux SociauxAméliorez votre Carrière grâce aux Réseaux Sociaux
Améliorez votre Carrière grâce aux Réseaux SociauxEmmanuel Laignelet
 
La vengeance de mort'omard
La vengeance de mort'omardLa vengeance de mort'omard
La vengeance de mort'omardpapybrico
 
NO DISCUTAMOS, DEBATAMOS
NO DISCUTAMOS, DEBATAMOSNO DISCUTAMOS, DEBATAMOS
NO DISCUTAMOS, DEBATAMOSEdith Cisneros
 
Ficha de evaluación tecnopedagógica con criterios grupal (4)
Ficha de evaluación tecnopedagógica con criterios grupal (4)Ficha de evaluación tecnopedagógica con criterios grupal (4)
Ficha de evaluación tecnopedagógica con criterios grupal (4)Catherine Meza Coronado
 

Andere mochten auch (20)

Angular js
Angular jsAngular js
Angular js
 
Introduction to AngularJS
Introduction to AngularJSIntroduction to AngularJS
Introduction to AngularJS
 
AngularJS performance & production tips
AngularJS performance & production tipsAngularJS performance & production tips
AngularJS performance & production tips
 
AngularJS 101 - Everything you need to know to get started
AngularJS 101 - Everything you need to know to get startedAngularJS 101 - Everything you need to know to get started
AngularJS 101 - Everything you need to know to get started
 
AngularJS Basics with Example
AngularJS Basics with ExampleAngularJS Basics with Example
AngularJS Basics with Example
 
Angular 2 - Core Concepts
Angular 2 - Core ConceptsAngular 2 - Core Concepts
Angular 2 - Core Concepts
 
Introduction to Angular 2
Introduction to Angular 2Introduction to Angular 2
Introduction to Angular 2
 
Introduction to Angularjs
Introduction to AngularjsIntroduction to Angularjs
Introduction to Angularjs
 
1 2 methodes_et_manuels_lien_xxi_2
1 2 methodes_et_manuels_lien_xxi_21 2 methodes_et_manuels_lien_xxi_2
1 2 methodes_et_manuels_lien_xxi_2
 
Sistema nervioso autonomo
Sistema nervioso autonomoSistema nervioso autonomo
Sistema nervioso autonomo
 
Lunch & Learn : La tête dans les nuages? La vérité sur le Cloud pour les PME !
Lunch & Learn : La tête dans les nuages? La vérité sur le Cloud pour les PME !Lunch & Learn : La tête dans les nuages? La vérité sur le Cloud pour les PME !
Lunch & Learn : La tête dans les nuages? La vérité sur le Cloud pour les PME !
 
Le grand nord_canadien_-_jacmart.
Le grand nord_canadien_-_jacmart.Le grand nord_canadien_-_jacmart.
Le grand nord_canadien_-_jacmart.
 
Apports de la psychologie sociale à l&rsquo;intelligence économique
Apports de la psychologie sociale à l&rsquo;intelligence économiqueApports de la psychologie sociale à l&rsquo;intelligence économique
Apports de la psychologie sociale à l&rsquo;intelligence économique
 
Améliorez votre Carrière grâce aux Réseaux Sociaux
Améliorez votre Carrière grâce aux Réseaux SociauxAméliorez votre Carrière grâce aux Réseaux Sociaux
Améliorez votre Carrière grâce aux Réseaux Sociaux
 
Malformaciones c
Malformaciones cMalformaciones c
Malformaciones c
 
Mon Amour24
Mon Amour24Mon Amour24
Mon Amour24
 
La vengeance de mort'omard
La vengeance de mort'omardLa vengeance de mort'omard
La vengeance de mort'omard
 
NO DISCUTAMOS, DEBATAMOS
NO DISCUTAMOS, DEBATAMOSNO DISCUTAMOS, DEBATAMOS
NO DISCUTAMOS, DEBATAMOS
 
Ficha de evaluación tecnopedagógica con criterios grupal (4)
Ficha de evaluación tecnopedagógica con criterios grupal (4)Ficha de evaluación tecnopedagógica con criterios grupal (4)
Ficha de evaluación tecnopedagógica con criterios grupal (4)
 
Marin ana t9_pp
Marin ana t9_ppMarin ana t9_pp
Marin ana t9_pp
 

Ähnlich wie Angluars js

Angular développer des applications .pdf
Angular développer des applications .pdfAngular développer des applications .pdf
Angular développer des applications .pdfimenhamada17
 
Alphorm.com Formation Angular - Les fondamentaux
Alphorm.com Formation Angular - Les fondamentauxAlphorm.com Formation Angular - Les fondamentaux
Alphorm.com Formation Angular - Les fondamentauxAlphorm
 
ENIB 2013-2014 - CAI Web #1: Côté navigateur 3/3
ENIB 2013-2014 - CAI Web #1: Côté navigateur 3/3 ENIB 2013-2014 - CAI Web #1: Côté navigateur 3/3
ENIB 2013-2014 - CAI Web #1: Côté navigateur 3/3 Horacio Gonzalez
 
MVVM de A à Z
MVVM de A à ZMVVM de A à Z
MVVM de A à ZMicrosoft
 
ASP.NET MVC, Web API & KnockoutJS
ASP.NET MVC, Web API & KnockoutJSASP.NET MVC, Web API & KnockoutJS
ASP.NET MVC, Web API & KnockoutJSRenaud Dumont
 
Seocamp Bayonne - JS et SEO
Seocamp  Bayonne - JS et SEOSeocamp  Bayonne - JS et SEO
Seocamp Bayonne - JS et SEOErlé Alberton
 
Comparatif des frameworks js mv
Comparatif des frameworks js mvComparatif des frameworks js mv
Comparatif des frameworks js mvMael Monnier
 
Introduction au Domain Driven Design
Introduction au Domain Driven DesignIntroduction au Domain Driven Design
Introduction au Domain Driven DesignDNG Consulting
 
Ionic, AngularJS,Cordova,NodeJS,Sass
Ionic, AngularJS,Cordova,NodeJS,SassIonic, AngularJS,Cordova,NodeJS,Sass
Ionic, AngularJS,Cordova,NodeJS,Sassmarwa baich
 
Expresso Rennes Atalante - Html5 / Css3D - 17 sept. 2013
Expresso Rennes Atalante - Html5 / Css3D - 17 sept. 2013Expresso Rennes Atalante - Html5 / Css3D - 17 sept. 2013
Expresso Rennes Atalante - Html5 / Css3D - 17 sept. 2013MBA Multimedia
 
HTML5/CSS3D - Expresso Rennes Atalante - 17 sept. 2013
HTML5/CSS3D - Expresso Rennes Atalante - 17 sept. 2013HTML5/CSS3D - Expresso Rennes Atalante - 17 sept. 2013
HTML5/CSS3D - Expresso Rennes Atalante - 17 sept. 2013Julien LE THUAUT
 
Fondamentaux d'architecture d'une application Flex
Fondamentaux d'architecture d'une application FlexFondamentaux d'architecture d'une application Flex
Fondamentaux d'architecture d'une application Flexdavid deraedt
 
Fondamentaux d'architecture d'une application Flex
Fondamentaux d'architecture d'une application FlexFondamentaux d'architecture d'une application Flex
Fondamentaux d'architecture d'une application Flexdavid deraedt
 
Web Components et Polymer 2 - GDG Algiers DevFest 2016 - 3 Décembre 2016
Web Components et Polymer 2 - GDG Algiers DevFest 2016 - 3 Décembre 2016Web Components et Polymer 2 - GDG Algiers DevFest 2016 - 3 Décembre 2016
Web Components et Polymer 2 - GDG Algiers DevFest 2016 - 3 Décembre 2016Tarik Zakaria Benmerar
 
Chapitre 1-Composants et Modules.pdf
Chapitre 1-Composants et Modules.pdfChapitre 1-Composants et Modules.pdf
Chapitre 1-Composants et Modules.pdfBoubakerMedanas
 
Chapitre 1-Composants et Modules.pdf
Chapitre 1-Composants et Modules.pdfChapitre 1-Composants et Modules.pdf
Chapitre 1-Composants et Modules.pdfBoubakerMedanas
 

Ähnlich wie Angluars js (20)

Angular développer des applications .pdf
Angular développer des applications .pdfAngular développer des applications .pdf
Angular développer des applications .pdf
 
Framework JavaScript Web - Brief techno
Framework JavaScript Web - Brief technoFramework JavaScript Web - Brief techno
Framework JavaScript Web - Brief techno
 
Alphorm.com Formation Angular - Les fondamentaux
Alphorm.com Formation Angular - Les fondamentauxAlphorm.com Formation Angular - Les fondamentaux
Alphorm.com Formation Angular - Les fondamentaux
 
ENIB 2013-2014 - CAI Web #1: Côté navigateur 3/3
ENIB 2013-2014 - CAI Web #1: Côté navigateur 3/3 ENIB 2013-2014 - CAI Web #1: Côté navigateur 3/3
ENIB 2013-2014 - CAI Web #1: Côté navigateur 3/3
 
MVVM de A à Z
MVVM de A à ZMVVM de A à Z
MVVM de A à Z
 
ASP.NET MVC, Web API & KnockoutJS
ASP.NET MVC, Web API & KnockoutJSASP.NET MVC, Web API & KnockoutJS
ASP.NET MVC, Web API & KnockoutJS
 
Seocamp Bayonne - JS et SEO
Seocamp  Bayonne - JS et SEOSeocamp  Bayonne - JS et SEO
Seocamp Bayonne - JS et SEO
 
Comparatif des frameworks js mv
Comparatif des frameworks js mvComparatif des frameworks js mv
Comparatif des frameworks js mv
 
Introduction au Domain Driven Design
Introduction au Domain Driven DesignIntroduction au Domain Driven Design
Introduction au Domain Driven Design
 
CV REBAI Hamida
CV REBAI HamidaCV REBAI Hamida
CV REBAI Hamida
 
Ionic, AngularJS,Cordova,NodeJS,Sass
Ionic, AngularJS,Cordova,NodeJS,SassIonic, AngularJS,Cordova,NodeJS,Sass
Ionic, AngularJS,Cordova,NodeJS,Sass
 
Expresso Rennes Atalante - Html5 / Css3D - 17 sept. 2013
Expresso Rennes Atalante - Html5 / Css3D - 17 sept. 2013Expresso Rennes Atalante - Html5 / Css3D - 17 sept. 2013
Expresso Rennes Atalante - Html5 / Css3D - 17 sept. 2013
 
HTML5/CSS3D - Expresso Rennes Atalante - 17 sept. 2013
HTML5/CSS3D - Expresso Rennes Atalante - 17 sept. 2013HTML5/CSS3D - Expresso Rennes Atalante - 17 sept. 2013
HTML5/CSS3D - Expresso Rennes Atalante - 17 sept. 2013
 
Fondamentaux d'architecture d'une application Flex
Fondamentaux d'architecture d'une application FlexFondamentaux d'architecture d'une application Flex
Fondamentaux d'architecture d'une application Flex
 
Fondamentaux d'architecture d'une application Flex
Fondamentaux d'architecture d'une application FlexFondamentaux d'architecture d'une application Flex
Fondamentaux d'architecture d'une application Flex
 
Web Components et Polymer 2 - GDG Algiers DevFest 2016 - 3 Décembre 2016
Web Components et Polymer 2 - GDG Algiers DevFest 2016 - 3 Décembre 2016Web Components et Polymer 2 - GDG Algiers DevFest 2016 - 3 Décembre 2016
Web Components et Polymer 2 - GDG Algiers DevFest 2016 - 3 Décembre 2016
 
Chapitre 1-Composants et Modules.pdf
Chapitre 1-Composants et Modules.pdfChapitre 1-Composants et Modules.pdf
Chapitre 1-Composants et Modules.pdf
 
Chapitre 1-Composants et Modules.pdf
Chapitre 1-Composants et Modules.pdfChapitre 1-Composants et Modules.pdf
Chapitre 1-Composants et Modules.pdf
 
Java Server Faces 2
Java Server Faces 2Java Server Faces 2
Java Server Faces 2
 
Prezentare ASP.Net.pptx
Prezentare ASP.Net.pptxPrezentare ASP.Net.pptx
Prezentare ASP.Net.pptx
 

Mehr von RYMAA

Cours referencement web_analytics
Cours referencement web_analyticsCours referencement web_analytics
Cours referencement web_analyticsRYMAA
 
Atelier HTML
Atelier HTMLAtelier HTML
Atelier HTMLRYMAA
 
E marketing
E marketingE marketing
E marketingRYMAA
 
Ajax intro 2pp
Ajax intro 2ppAjax intro 2pp
Ajax intro 2ppRYMAA
 
Concevoir un jeu-concours
Concevoir un jeu-concoursConcevoir un jeu-concours
Concevoir un jeu-concoursRYMAA
 
Analyseur sax
Analyseur saxAnalyseur sax
Analyseur saxRYMAA
 
Les clés du e marketing et e-commerce
Les clés du e marketing et e-commerceLes clés du e marketing et e-commerce
Les clés du e marketing et e-commerceRYMAA
 
Ch 1-la-révolution-des-tic-2010
Ch 1-la-révolution-des-tic-2010Ch 1-la-révolution-des-tic-2010
Ch 1-la-révolution-des-tic-2010RYMAA
 
Programme MOOC
Programme MOOCProgramme MOOC
Programme MOOCRYMAA
 
Programme officiel-journée-des-mooc
Programme officiel-journée-des-moocProgramme officiel-journée-des-mooc
Programme officiel-journée-des-moocRYMAA
 
C2 écrire en français (formules)
C2   écrire en français (formules)C2   écrire en français (formules)
C2 écrire en français (formules)RYMAA
 
6 1-ergonomie du web
6 1-ergonomie du web6 1-ergonomie du web
6 1-ergonomie du webRYMAA
 
Formation joomla 1ere_session
Formation joomla 1ere_sessionFormation joomla 1ere_session
Formation joomla 1ere_sessionRYMAA
 
Interface collectionsinter
Interface collectionsinterInterface collectionsinter
Interface collectionsinterRYMAA
 

Mehr von RYMAA (14)

Cours referencement web_analytics
Cours referencement web_analyticsCours referencement web_analytics
Cours referencement web_analytics
 
Atelier HTML
Atelier HTMLAtelier HTML
Atelier HTML
 
E marketing
E marketingE marketing
E marketing
 
Ajax intro 2pp
Ajax intro 2ppAjax intro 2pp
Ajax intro 2pp
 
Concevoir un jeu-concours
Concevoir un jeu-concoursConcevoir un jeu-concours
Concevoir un jeu-concours
 
Analyseur sax
Analyseur saxAnalyseur sax
Analyseur sax
 
Les clés du e marketing et e-commerce
Les clés du e marketing et e-commerceLes clés du e marketing et e-commerce
Les clés du e marketing et e-commerce
 
Ch 1-la-révolution-des-tic-2010
Ch 1-la-révolution-des-tic-2010Ch 1-la-révolution-des-tic-2010
Ch 1-la-révolution-des-tic-2010
 
Programme MOOC
Programme MOOCProgramme MOOC
Programme MOOC
 
Programme officiel-journée-des-mooc
Programme officiel-journée-des-moocProgramme officiel-journée-des-mooc
Programme officiel-journée-des-mooc
 
C2 écrire en français (formules)
C2   écrire en français (formules)C2   écrire en français (formules)
C2 écrire en français (formules)
 
6 1-ergonomie du web
6 1-ergonomie du web6 1-ergonomie du web
6 1-ergonomie du web
 
Formation joomla 1ere_session
Formation joomla 1ere_sessionFormation joomla 1ere_session
Formation joomla 1ere_session
 
Interface collectionsinter
Interface collectionsinterInterface collectionsinter
Interface collectionsinter
 

Angluars js

  • 1. Page 1 Cours de Programmation Web Présentation du framework AngularJS Yacine Rezgui – Cédric Ferretti AngularJS Présentation du framework AngularJS
  • 2. Page 2 Cours de Programmation Web Présentation du framework AngularJS Yacine Rezgui – Cédric Ferretti Table des matières AngularJS, qu’est-ce que c’est ?.............................................................................................................. 3 Gestion de la vue........................................................................................................................................ 4 Syntaxe..................................................................................................................................................... 4 Two-way data binding........................................................................................................................... 4 Ng-*........................................................................................................................................................... 4 Les filtres.................................................................................................................................................. 5 La partie logique......................................................................................................................................... 5 Les services.............................................................................................................................................. 5 Les contrôleurs ....................................................................................................................................... 5 Le routing................................................................................................................................................. 5 Quels sont ses inconvénients ? ............................................................................................................... 6 Pourquoi choisir ce framework ?............................................................................................................ 6
  • 3. Page 3 Cours de Programmation Web Présentation du framework AngularJS Yacine Rezgui – Cédric Ferretti AngularJS, qu’est-ce que c’est ? AngularJS est un framework JavaScript, créé en octobre 2010 par des développeurs de chez Google et sous la licence MIT. Il propose une architecture basée sur le pattern MVC (Model View Controller) pour des SPA (Single Page Application), autrement dit des applications web où la navigation se fait sur une même et unique page (exemple : Gmail, Dropbox, iCloud, etc.). Il a été créé avec la philosophie suivante : Le HTML est très bien pensé pour les documents statiques mais il n’est pas du tout adapté pour un usage dynamique tel qu’on le voit dans les applications web. AngularJS enrichie le HTML avec une grammaire similaire, spécialement conçue pour des RIA (Rich Internet Application). Le résultat est un code parfaitement expressif (on comprend chaque action effectuée à sa simple lecture), lisible (ça reste du HTML) et facile à écrire. La principale caractéristique de ces frameworks est qu’un grand nombre d’actions effectuées sur le serveur tel que le rendu du moteur de template, la récupération des données, leur (pré) validation et la navigation dans une application, sont désormais déportés côté client. Le serveur se limite à traiter, vérifier, valider et envoyer les données aux clients dans un format générique (JSON, XML, etc.) Cela permet d’avoir une charge sur les serveurs nettement moins importante et une fluidité de navigation chez le client.
  • 4. Page 4 Cours de Programmation Web Présentation du framework AngularJS Yacine Rezgui – Cédric Ferretti Gestion de la vue AngularJS se différencie de ses concurrents par une gestion facultative du DOM (Document Object Model) de l’application. Contrairement à Backbone.js et d’autres frameworks, AngularJS permet de développer une RIA sans devoir utiliser des sélecteurs d’éléments HTML afin de rendre une application interactive. Syntaxe La syntaxe des templates de la vue se résume à du HTML, avec des attributs spécifiques (ng-*) et un affichage de variables à l’aide d’accolades Ex : <h1>The sum of 2+3 = {{2 + 3}}!</h1> Two-way data binding Une de ses fonctionnalités phares est le two-way data binding qui permet de notifier tous les éléments qui font référence à une variable, de son changement. Ainsi sans coder explicitement du JavaScript, on peut mettre à jour en temps réel un titre qui fait référence à un champ texte. Ex : <input type="text" ng-model="yourName"><h1>Hello {{yourName}}!</h1> Ng-* AngularJS propose une liste d’attributs propres aux éléments HTML comme ng- disabled pour les inputs, ng-multiple pour les selects et ng-click, ng-class, ng- style pour tous les éléments (ng-* est un préfixe permettant de différencier les vrais attributs HTML de ceux d’AngularJS) permettant d’effectuer une action tel qu’appeler une fonction, assigner une valeur à une variable, choisir une classe suite à un évènement (clic, survol, envoi de formulaire) ou à un changement de variable. L’attribut ng-repeat permet l’affichage d’éléments d’un tableau d’une manière très simple, en l’affectant à un template d’une balise HTML qui représente un élément du tableau. (tab représente un tableau et el un de ses éléments) Ex : <li ng-repeat="friend in friends">
  • 5. Page 5 Cours de Programmation Web Présentation du framework AngularJS Yacine Rezgui – Cédric Ferretti Les filtres Actuellement, lors d’un affichage spécifique d’une donnée dans une page, on effectue un traitement de la variable à afficher à l’aide d’une fonction dont on insert le résultat dans une variable intermédiaire et enfin, on affecte le innerHTML d’un élément. AngularJS permet d’une manière plus aisée ce type d’affichage à l’aide du caractère « | » suivi de la fonction qui transforme la donnée. Ex : <p>default currency symbol ($): {{amount | currency}}</p> AngularJS intègre déjà plusieurs filtres (date, monnaie, nombre, caractères minuscules) mais aussi des filtres d’affichage (nombre maximum d’éléments, recherche, tri). Ex : <tr ng-repeat="friend in friends | limitTo: 10"> La partie logique Les services Les services sont des fonctions qui exécutent des tâches communes aux contrôleurs. Ils permettent d’éviter une redondance du code. Ce sont des singletons. AngularJS en propose plusieurs par défaut (routing, i18n, ajax, scope, filter, etc.). Les contrôleurs Les contrôleurs sont tout simplement des fonctions qui acceptent en paramètre des services prédéfinis comme $scope (qui permet d’avoir accès aux propriétés et méthodes de la vue) ou $route (qui permet d’avoir accès au moteur de gestion de navigation entre pages). Il peut être défini pour un élément de la vue à l’aide de l’attribut ng-controller. Le routing Le système de gestion de la navigation d’une RIA s’appelle le « routing ». Dans AngularJS, on peut paramétrer le choix du contrôleur et le template choisi pour la vue (valeur en dur ou page externe) pour une route donnée.
  • 6. Page 6 Cours de Programmation Web Présentation du framework AngularJS Yacine Rezgui – Cédric Ferretti Quels sont ses inconvénients ? Malgré sa facilité d’utilisation, la syntaxe utilisée et l’emplacement choisi (directement dans la page HTML) suscitent une certaine repousse des développeurs qui sont habitués à utiliser des moteurs de templates plus classiques tel que EJS (syntaxe similaire à Smarty). De plus, une bonne partie des librairies permettent d’ajouter des évènements, modifier des éléments HTML avec les méthodes basiques JavaScript, là où AngularJS nous pousse à utiliser ses méthodes qui sont assez différentes. Il ne propose pas d’interface graphique comme ses concurrents Dojo et ExtJS (framework permettant de coder entièrement une SPA sans utiliser du HTML). Sa jeunesse et le manque d’entreprises l’utilisant en production lui font défaut contrairement à Backbone.js qui a acquis à sa cause Linkedin et Foursquare. Pourquoi choisir ce framework ? AngularJS arrive à se démarquer de ses concurrents malgré la forte concurrence qu’il existe entre les différents frameworks JavaScript. Tout d’abord, le projet est développé par des développeurs de chez Google et il est sponsorisé par leur entreprise, ce qui n’est pas négligeable pour la pérennité du projet. Comme cités précédemment, ses fonctionnalités et leur mise en place font énormément gagner du temps aux développeurs. AngularJS propose aussi les modules qui permettent de découper son SPA en parties distinctes comme les namespaces et aussi les directives qui permettent de redéfinir et ainsi étendre leurs possibilités (ex : <calendar> remplacerait un widget complet en HTML, ce qui simplifie grandement la lisibilité du code). De plus, AngularJS est utilisé en production sur l’application Youtube de la PlayStation 3 ainsi que dans la nouvelle version de DoubleClick (régie publicitaire appartenant à Google, destinée aux grands comptes).