Section courante

A propos

Section administrative du site

 Langage  Elément  Tutoriel  Aide 
ABAP/4
Ada
Assembleur
Assembly & bytecode
ASP (Active Server Pages)
Basic
C
C++
C# (C Sharp)
Cobol
ColdFusion
Fortran
HTML
Java
JavaScript
LISP
Logo
LotusScript
Oberon
Pascal
Perl
PHP
PL/1
Prolog
Python
Rebol
REXX
Ruby
Rust
SAS
NoSQL
SQL
Swift
X++ (Axapta)
GNAT
SMALLAda
VHDL
Assembleur 370
Assembleur 1802
Assembleur 4004
Assembleur 6502
Assembleur 6800
Assembleur 68000
Assembleur 8080 et 8085
Assembleur 8089
Assembleur 80x86
Assembleur AGC4
Assembleur ARM
Assembleur DPS 8000
Assembleur i860
Assembleur Itanium
Assembleur MIPS
Assembleur PDP-11
Assembleur PowerPC
Assembleur RISC-V
Assembleur SPARC
Assembleur SuperH
Assembleur UNIVAC I
Assembleur VAX
Assembleur Z80
Assembleur Z8000
Assembleur z/Architecture
ASSEMBLER/MONITOR 64
Micol Assembler
GFA Assembler
A86
MASM (Macro Assembler)
TASM (Turbo Assembler)
CIL
Jasmin
LLVM
MSIL
Parrot
P-Code (PCode)
SWEET16
G-Pascal
ASP 1.0
ASP 2.0
ASP 3.0
ASP.NET
ASP.NET Core
ABasiC (Amiga)
Adam SmartBASIC
Altair BASIC
AmigaBASIC (Amiga)
AMOS Basic (Amiga)
Atari Basic (Atari 400, 600 XL, 800, 800XL)
Basic Apple II (Integer BASIC/APPLESOFT)
Basic Commodore 64 (CBM-BASIC)
Basic Commodore 128 (BASIC 7.0)
Basic Commodore VIC-20 (CBM-BASIC 2.0)
Basic Coco 1 (Color Basic)
Basic Coco 2 (Extended Color Basic)
Basic Coco 3 (Extended Color Basic 2.0)
BASICA (PC DOS)
Basic Pro
BBC BASIC
Blitz BASIC (Amiga)
DarkBASIC
Dartmouth BASIC
GFA-Basic (Atari ST/Amiga)
GWBASIC (MS-DOS)
Liberty BASIC
Locomotive BASIC (Amstrad CPC)
MSX-Basic
Omikron Basic (Atari ST)
Oric Extended Basic
Power Basic
Quick Basic/QBasic (MS-DOS)
Sinclair BASIC (ZX80, ZX81, ZX Spectrum)
ST BASIC (Atari ST)
Turbo Basic
Vintage BASIC
VBScript
Visual Basic (VB)
Visual Basic .NET (VB .NET)
Visual Basic pour DOS
Yabasic
BeckerBASIC
SIMONS' BASIC
Basic09 d'OS-9
Disk Extended Color Basic
Basic09 d'OS-9
Disk Extended Color Basic
Access
Excel
Visual Basic pour Windows
Visual Basic .NET pour Windows
C Shell Unix (csh)
C pour Amiga
C pour Atari ST
C pour DOS
C pour Falcon030
C pour GEMDOS (Atari ST)
C pour Linux
C pour PowerTV OS
C pour OS/2
C pour Unix
C pour Windows
Aztec C
CoCo-C
GNU C
HiSoft C
IBM C/2
Introl-C
Lattice C
Microsoft C
MinGW C
MSX-C
Open Watcom C
OS-9 C Compiler
Pure C
Quick C
Turbo C
HiSoft C for Atari ST
HiSoft C for CP/M (Amstrad CPC)
C++ pour OS/2
C++ pour Windows
Borland C++
C++Builder
IBM VisualAge C++
Intel C++
MinGW C++
Open Watcom C++
Symantec C++
Turbo C++
Visual C++
Visual C++ .NET
Watcom C++
Zortech C++
C# (C Sharp) pour Windows
Apple III Cobol
Microsoft Cobol
BlueDragon
Lucee
OpenBD
Railo
Smith Project
Microsoft Fortran
WATFOR-77
CSS
FBML
Open Graph
SVG
XML
XSL/XSLT
LESS
SASS
GCJ (GNU)
JSP
Jython
Visual J++
Node.js
TypeScript
AutoLISP
ACSLogo
LotusScript pour Windows
Amiga Oberon
Oberon .NET
Apple Pascal
Delphi/Kylix/Lazarus
Free Pascal
GNU Pascal
HighSpeed Pascal
IBM Personal Computer Pascal
Lisa Pascal
Maxon Pascal
MPW Pascal
OS-9 Pascal
OSS Personal Pascal
Pascal-86
Pascal du Cray Research
Pascal/VS
Pascal-XT
PURE Pascal
QuickPascal
RemObjets Chrome
Sun Pascal
THINK Pascal
Tiny Pascal (TRS-80)
Turbo Pascal
UCSD Pascal
VAX Pascal
Virtual Pascal
Turbo Pascal for CP/M-80
Turbo Pascal for DOS
Turbo Pascal for Macintosh
Turbo Pascal for Windows
CodeIgniter (Cadre d'application)
Drupal (Projet)
Joomla! (Projet)
Phalanger (PHP .NET)
phpBB (Projet)
Smarty (balise)
Twig (balise)
Symfony (Cadre d'application)
WordPress (Projet)
Zend (Cadre d'application)
PL360
PL/M-80
PL/M-86
Turbo Prolog
CPython
IronPython
Jython
PyPy
AREXX
Regina REXX
JMP
Btrieve
Cassandra
Clipper
CouchDB
dBASE
Hbase
Hypertable
MongoDB
Redis
Access
BigQuery
DB2
H2
Interbase
MySQL
Oracle
PostgreSQL
SAP HANA
SQL Server
Sybase
U-SQL
Introduction
Référence des directives
Les premiers pas
Préface
Notes légales
Dictionnaire
Recherche

Les premiers pas

AngularJS est un cadre d'application JavaScript open source développé par Google, conçu pour faciliter la création d'applications Web dynamiques. Il repose sur le principe de l'architecture MVC (Modèle-Vue-Contrôleur) pour organiser le code et séparer les différentes couches de l'application. Cette approche permet de structurer les applications de manière modulaire, rendant le développement plus maintenable et évolutif. AngularJS utilise un concept de liaison bidirectionnelle des données (two-way data binding), synchronisant automatiquement l'état des données entre le modèle et la vue, réduisant ainsi la quantité de code nécessaire pour gérer les interactions utilisateur.

L'un des aspects clefs d'AngularJS est son système de directives, permettant d'enrichir le HTML standard avec de nouvelles fonctionnalités. Ces directives peuvent être utilisées pour manipuler le DOM, gérer les événements ou intégrer des comportements spécifiques à l'application, tout en restant déclaratives. En plus de cela, AngularJS fournit une gestion robuste des dépendances via un mécanisme d'injection de dépendances. Ce mécanisme simplifie l'ajout de services tels que l'accès aux données, la gestion de l'état ou la communication avec des API externes, tout en rendant le code plus facilement testable.

Enfin, AngularJS offre une gestion puissante des routages, permettant de créer des applications monopages (SPA - Single Page Applications). Cette fonctionnalité permet de charger dynamiquement les vues et de naviguer entre elles sans recharger la page complète, offrant ainsi une expérience utilisateur fluide. Avec son ensemble riche de fonctionnalités et son approche modulaire, AngularJS a révolutionné le développement Web en permettant aux développeurs de concevoir des applications interactives et réactives avec un minimum de complexité.

Suivez la page pour voir comment AngularJS rend les navigateurs plus intelligents, sans utiliser d'extensions ou de plugiciels natifs :

Une fois le tutoriel terminé, vous serez en mesure de :

Configuration de l'environnement

AngularJS utilise normalement Git et Node.js pour sa configuration d'environnement.

Installer Git

Vous pouvez télécharger et installer Git depuis https://git-scm.com/download. Une fois installé, vous devriez avoir accès à l'outil de ligne de commande git. Les principales commandes que vous devrez utiliser sont :

Téléchargez angular-phonecat

Clonez le dépôt angular-phonecat situé sur GitHub en exécutant la commande suivante :

git clone --depth=16 https://github.com/angular/angular-phonecat.git

Cette commande crée un sous-répertoire angular-phonecat dans votre répertoire actuel.

L'option --depth=16 indique à Git de récupérer uniquement les 16 derniers commits. Cela rend le téléchargement beaucoup plus petit et plus rapide.

Changez votre répertoire actuel en angular-phonecat.

cd angular-phonecat

Les instructions de cette pager supposent désormais que vous exécutez toutes les commandes à partir du répertoire angular-phonecat.

Installer Node.js

Pour installer les dépendances (comme les outils de test et AngularJS lui-même) et exécuter le serveur Web local préconfiguré, vous aurez également besoin de Node.js v6+.

Vous pouvez télécharger un programme d'installation Node.js pour votre système d'exploitation à partir de https://nodejs.org/en/download/.

Vérifiez la version de Node.js que vous avez installée en exécutant la commande suivante :

node --version

Dans les distributions basées sur Debian, il peut y avoir un conflit de nom avec un autre utilitaire appelé node. La solution suggérée est d'installer également le paquet apt nodejs-legacy, renommant node en nodejs.

apt-get install nodejs-legacy npm
nodejs --version
npm --version

Si vous devez exécuter différentes versions de Node.js dans votre environnement local, envisagez d'installer Node Version Manager (nvm) ou Node Version Manager (nvm) for Windows.

En installant Node.js, vous obtenez également npm, étant un exécutable en ligne de commande pour télécharger et gérer les paquets Node.js. Nous l'utilisons pour télécharger le cadre d'application AngularJS ainsi que les outils de développement et de test.

Une fois Node.js installé sur votre machine, vous pouvez télécharger ces dépendances en exécutant :

npm install

Cette commande lit le fichier package.json d'angular-phonecat et télécharge les dépendances suivantes dans le répertoire node_modules :

Dépendance Description
Http-Server Serveur Web statique local simple
Karma Exécuteur de tests unitaires
Protractor Exécuteur de tests de bout en bout (E2E)

L'exécution de npm install copiera également automatiquement le cadre d'application AngularJS et les autres dépendances nécessaires au fonctionnement de l'application dans le répertoire app/lib/.

Notez que le projet angular-phonecat est configuré pour installer et exécuter ces utilitaires via des scripts npm. Cela signifie que vous n'avez pas besoin d'installer l'un de ces utilitaires globalement sur votre système pour suivre la page.

Le projet est préconfiguré avec un certain nombre de scripts d'aide npm pour faciliter l'exécution des tâches courantes dont vous aurez besoin lors du développement :

Commande Description
npm start Démarrer un serveur Web de développement local.
npm test Démarrez le lanceur de tests unitaire Karma.
npm run protractor Exécutez les tests de bout en bout (E2E) du Protractor.
npm run update-webdriver Installez les pilotes nécessaires à Protractor.

Installer les outils d'aide (facultatif)

Les modules Http-Server, Karma et Protractor sont également des exécutables, pouvant être installés globalement et exécutés directement à partir d'un terminal/prompt de commande. Vous n'avez pas besoin de le faire pour suivre la page, mais si vous décidez de les exécuter directement, vous pouvez installer ces modules globalement en utilisant sudo npm install --global ....

Par exemple, pour installer l'exécutable de ligne de commande http-server, vous devez procéder comme suit :

sudo npm install --global http-server

(Omettez le sudo si vous utilisez Windows.)

Vous pouvez ensuite exécuter directement l'outil http-server, par exemple :

http-server ./app

Exécution du serveur Web de développement

Bien que les applications AngularJS soient constituées uniquement de code côté client et qu'il soit possible de les ouvrir dans un navigateur Web directement à partir du système de fichiers, il est préférable de les diffuser à partir d'un serveur Web HTTP. En particulier, pour des raisons de sécurité, la plupart des navigateurs modernes n'autoriseront pas JavaScript à effectuer des requêtes serveur si la page est chargée directement à partir du système de fichiers.

Le projet angular-phonecat est configuré avec un simple serveur Web statique pour héberger l'application pendant le développement. Démarrez le serveur Web en exécutant :

npm start

Cela créera un serveur Web local écoutant le port 8000 sur votre machine locale. Vous pouvez maintenant accéder à l'application à l'adresse http://localhost:8000/index.html.

Pour servir l'application Web sur une adresse IP ou un port différent, modifiez le script «start» dans package.json. Vous pouvez utiliser -a pour définir l'adresse et -p pour définir le port. Vous devez également mettre à jour la propriété de configuration baseUrl dans e2e-test/protractor.conf.js.

Exécution de tests unitaires

On utilise des tests unitaires pour nous assurer que le code JavaScript de l'application fonctionne correctement. Les tests unitaires se concentrent sur le test de petites parties isolées de l'application. Les tests unitaires sont conservés dans des fichiers de test (spécifications) côte à côte avec le code de l'application. De cette façon, il est plus facile de les trouver et de les maintenir à jour avec le code testé. Cela facilite également la refactorisation de la structure de notre application, car les tests sont déplacés avec le code source.

Le projet angular-phonecat est configuré pour utiliser Karma pour exécuter les tests unitaires de l'application. Démarrez Karma en exécutant :

npm test

Cela va démarrer le lanceur de tests unitaires Karma. Karma va lire le fichier de configuration karma.conf.js, situé à la racine du répertoire du projet. Ce fichier de configuration indique à Karma de :

Il est préférable de laisser cette fonction s'exécuter en permanence, en arrière-plan, car elle vous fournira un retour immédiat sur la réussite ou non des tests unitaires de vos modifications pendant que vous travaillez sur le code.

Exécution de tests E2E

Nous utilisons des tests E2E (de bout en bout) pour garantir que l'application dans son ensemble fonctionne comme prévu. Les tests E2E sont conçus pour tester l'ensemble de l'application côté client, en particulier pour s'assurer que les vues s'affichent et se comportent correctement. Pour ce faire, il simule une interaction réelle de l'utilisateur avec l'application réelle exécutée dans le navigateur Web.

Les tests E2E sont conservés dans le répertoire e2e-tests.

Le projet angular-phonecat est configuré pour utiliser Protractor pour exécuter les tests E2E de l'application. Protractor s'appuie sur un ensemble de pilotes pour lui permettre d'interagir avec le navigateur. Vous pouvez installer ces pilotes en exécutant :

npm run update-webdriver

Vous n'avez pas besoin d'exécuter manuellement cette commande. Nos scripts npm sont configurés de manière à ce qu'ils soient automatiquement exécutés dans le cadre de la commande qui exécute les tests E2E.

Étant donné que Protractor fonctionne en interagissant avec une application en cours d'exécution, nous devons démarrer notre serveur Web :

npm start

Ensuite, dans une fenêtre de terminal/ligne de commande distincte, nous pouvons exécuter les scripts de test Protractor sur l'application en exécutant :

npm run protractor

Protractor lira le fichier de configuration dans e2e-tests/protractor.conf.js. Ce fichier de configuration indique à Protractor de :

Il est conseillé d'exécuter les tests E2E chaque fois que vous apportez des modifications aux vues HTML ou que vous souhaitez vérifier que l'application dans son ensemble s'exécute correctement. Il est très courant d'exécuter des tests E2E avant de transmettre une nouvelle validation de modifications à un dépôt à distance.

Chaque version de Protractor est compatible avec des versions de navigateur spécifiques. Si vous lisez ceci dans le futur, il est possible que la version Protractor spécifiée ne soit plus compatible avec la dernière version de Chrome que vous utilisez.

Si tel est le cas, vous pouvez essayer de mettre à niveau Protractor vers une version plus récente. Pour obtenir des instructions sur la mise à niveau des dépendances, consultez Mise à jour des dépendances.

Mise à jour des dépendances

Afin d'éviter les surprises, toutes les dépendances répertoriées dans package.json sont épinglées à des versions spécifiques (c'est à cela que sert le fichier package-lock.json). Cela garantit que la même version d'une dépendance est installée à chaque fois.

Étant donné que toutes les dépendances sont acquises via npm, vous pouvez également utiliser le même outil pour les mettre à jour facilement. Exécutez simplement le script préconfiguré :

npm run update-deps

Cela mettra à jour tous les paquets vers la dernière version qui correspond à leurs intervalles de versions (comme spécifié dans package.json) et copiera également les fichiers nécessaires dans app/lib/. Par exemple, si package.json contient "some-package": "1.2.x", il sera mis à jour vers la dernière version 1.2.x (par exemple 1.2.99), mais pas vers 1.3.x (par exemple 1.3.0).

Si vous souhaitez mettre à jour une dépendance vers une version plus récente que celle autorisée par l'intervalle spécifiée, vous pouvez modifier l'intervalle de versions dans package.json, puis exécuter npm run update-deps comme d'habitude.

Problèmes courants

Problèmes de pare-feu/proxy

Git et d'autres outils utilisent souvent le protocole git: pour accéder aux fichiers dans les dépôt à distances. Certaines configurations de pare-feu bloquent les URL git://, ce qui entraîne des erreurs lors de la tentative de clonage de référentiels ou de téléchargement de dépendances. (Par exemple, les pare-feu d'entreprise sont «connus» pour bloquer git:.)

Si vous rencontrez ce problème, vous pouvez forcer l'utilisation de https: à la place, en exécutant la commande suivante :

git config --global url."https://".insteadOf git://

La mise à jour de WebDriver prend trop de temps

L'exécution de update-webdriver pour la première fois peut prendre de quelques secondes à quelques minutes (selon votre matériel et votre connexion réseau). Si vous annulez l'opération (par exemple en utilisant Ctrl+C), vous risquez d'obtenir des erreurs lorsque vous tenterez d'exécuter Protractor ultérieurement.

Dans ce cas, vous pouvez supprimer le répertoire node_modules/ et exécuter à nouveau npm install.

Dépendances de Protractor

Protractor utilise le serveur autonome Selenium, nécessitant à son tour l'installation du kit de développement Java (JDK) sur votre machine locale. Vérifiez cela en exécutant java -version à partir de la ligne de commande.

Erreur lors de l'exécution du serveur Web

Le serveur Web est configuré pour utiliser le port 8000. Si le port est déjà utilisé (par exemple par une autre instance d'un serveur Web en cours d'exécution), vous obtiendrez une erreur EADDRINUSE. Assurez-vous que le port est disponible avant d'exécuter npm start.

Amorçage

Dans cette section, vous vous familiariserez avec les fichiers de code source les plus importants de l'application AngularJS Phonecat. Vous apprendrez également à démarrer les serveurs de développement fournis avec angular-seed et à exécuter l'application dans le navigateur Web.

Avant de continuer, assurez-vous d'avoir configuré votre environnement de développement et installé toutes les dépendances nécessaires.

Dans le répertoire angular-phonecat, exécutez cette commande :

git checkout -f step-0

Cela réinitialise votre espace de travail.

Vous devez répéter cette opération pour chaque étape ultérieure de cette page. Cela entraînera la perte de toutes les modifications que vous avez apportées dans votre répertoire de travail.

Si vous ne l'avez pas déjà fait, vous devez installer les dépendances en exécutant :

npm install

Pour voir l'application s'exécuter dans un navigateur, ouvrez un onglet ou une fenêtre de terminal/ligne de commande distinct, puis exécutez npm start pour démarrer le serveur Web. Ouvrez maintenant une fenêtre de navigateur pour l'application et accédez à http://localhost:8000/index.html.

Notez que si vous avez déjà exécuté l'application de branche principale, vous pouvez voir la version principale mise en cache de l'application dans la fenêtre de votre navigateur à ce stade. Appuyez simplement sur Actualiser (ou généralement Ctrl+F5) pour recharger la page.

Vous pouvez maintenant voir la page dans votre navigateur Web.

La page HTML affichant «Nothing here yet!» a été construite avec le code HTML ci-dessous. Le code contient certains éléments AngularJS clefs dont nous aurons besoin à mesure que nous progresserons.

Voici le code de app/index.html :

  1. <!doctype html>
  2. <html lang="en" ng-app>
  3.   <head>
  4.     <meta charset="utf-8">
  5.     <title>My HTML File</title>
  6.     <link rel="stylesheet" href="lib/bootstrap/dist/css/bootstrap.css" />
  7.     <script src="lib/angular/angular.js"></script>
  8.   </head>
  9.   <body>
  10.  
  11.     <p>Nothing here {{'yet' + '!'}}</p>
  12.  
  13.   </body>
  14. </html>

Que fait le code ?

L'attribut ng-app :

  1. <html ng-app>

L'attribut ng-app représente une directive AngularJS, nommée ngApp (AngularJS utilise kebab-case pour ses attributs personnalisés et camelCase pour les directives correspondantes les implémentant). Cette directive est utilisée pour marquer l'élément HTML qu'AngularJS doit considérer comme l'élément racine de l'application. Cela donne aux développeurs d'applications la liberté d'indiquer à AngularJS si la page HTML entière ou seulement une partie de celle-ci doit être traitée comme l'application AngularJS.

Balise de script angular.js :

  1. <script src="lib/angular/angular.js"></script>

Ce code télécharge le script angular.js enregistrant un rappel étant exécuté par le navigateur lorsque la page HTML contenant le fichier sera entièrement téléchargée. Lorsque le rappel est exécuté, AngularJS recherche la directive ngApp. Si AngularJS trouve la directive, il amorcera l'application avec la racine du DOM de l'application comme élément sur lequel la directive ngApp a été définie.

Reliure double bouclée avec une expression :

  1. Nothing here {{'yet' + '!'}}

Cette ligne démontre deux fonctionnalités principales des capacités de modèle AngularJS :

La liaison indique à AngularJS qu'il doit évaluer une expression et insérer le résultat dans le DOM à la place de la liaison. Comme nous le verrons dans les étapes suivantes, plutôt qu'une insertion unique, une liaison entraînera des mises à jour continues efficaces chaque fois que le résultat de l'évaluation de l'expression change.

Les expressions AngularJS sont des extraits de code de type JavaScript étant évalués par AngularJS dans le contexte de la portée actuelle du modèle, plutôt que dans le cadre du contexte global (fenêtre).

Comme prévu, une fois ce modèle traité par AngularJS, la page HTML contient le texte :

Nothing here yet!

Amorçage des applications AngularJS

L'amorçage automatique des applications AngularJS à l'aide de la directive ngApp est très simple et convient à la plupart des cas. Dans les cas avancés, comme lors de l'utilisation de chargeurs de scripts, vous pouvez utiliser la méthode impérative/manuelle pour amorcer l'application.

Trois choses importantes se produisent pendant la phase d'amorçage :

Une fois qu'une application est démarrée, elle attend alors les événements entrants du navigateur (tels que les clics de souris, les appuis sur les touches ou les réponses HTTP entrantes) pouvant modifier le modèle. Une fois qu'un tel événement se produit, AngularJS détecte s'il a provoqué des modifications du modèle et si des modifications sont trouvées, AngularJS les reflétera dans la vue en mettant à jour toutes les liaisons affectées.

La structure de notre application est actuellement très simple. Le modèle ne contient qu'une seule directive et une seule liaison statique, et notre modèle est vide.

Quels sont tous ces fichiers dans mon répertoire de travail ?

La plupart des fichiers de votre répertoire de travail proviennent du projet angular-seed, étant généralement utilisé pour démarrer de nouveaux projets AngularJS. Le projet seed est préconfiguré pour installer le cadre d'application AngularJS (via npm dans le répertoire app/lib/) et les outils de développement et de test d'une application Web classique (via npm).

Expériences

Essayez d'ajouter une nouvelle expression à index.html qui fera quelques calculs :

  1. <p>1 + 2 = {{1 + 2}}</p>


PARTAGER CETTE PAGE SUR
Dernière mise à jour : Mardi, le 21 janvier 2025