Normalisation des projets AngularJS
-- Directives
Les notations suivantes permettent d'invoquer une directive :
- <fc #008000> x-ng-directive-name</fc> (ok avec validation HTML)
- <fc #008000>data-ng-directive-name</fc> (ok avec validation HTML)
- ng-directive-name (standard)
- ngDirectiveName (camelCase)
- ng:directive:name
- ng_directive_name
AngularJs normalise de lui même l'appel des directives :
- En supprimant les x- et data- au début des elements/attributs.
- En convertissant les : , -, ou _ en camelCase.
Il est préférable de maintenir la possibilité d'une normalisation W3C, donc préférer le maintien des préfixes x- ou data-, et l'utilisation des - plutôt que les :, _ ou camelCase.
-- Structure des dossiers d'une application
-- Structure standard
Pour les petits projet : regroupement par rôle
app/ ----- controllers/ ---------- mainController.js ---------- otherController.js ----- directives/ ---------- mainDirective.js ---------- otherDirective.js ----- services/ ---------- userService.js ---------- itemService.js ----- js/ ---------- bootstrap.js ---------- jquery.js ----- app.js views/ ----- mainView.html ----- otherView.html ----- index.html
-- Structure modulaire
Pour les gros projets : regroupement par fonctionnalités
app/ ----- shared/ // acts as reusable components or partials of our site ---------- sidebar/ --------------- sidebarDirective.js --------------- sidebarView.html ---------- article/ --------------- articleDirective.js --------------- articleView.html ----- components/ // each component is treated as a mini Angular app ---------- home/ --------------- homeController.js --------------- homeService.js --------------- homeView.html ---------- blog/ --------------- blogController.js --------------- blogService.js --------------- blogView.html ----- app.module.js ----- app.routes.js assets/ ----- img/ // Images and icons for your app ----- css/ // All styles and style related files (SCSS or LESS files) ----- js/ // JavaScript files written for your app that are not for angular ----- libs/ // Third-party libraries such as jQuery, Moment, Underscore, etc. index.html