-
Notifications
You must be signed in to change notification settings - Fork 0
Home
L'application JCertif Web 2013 est construit avec le framework AngularJS.
-
app code de l'application
- directives composants réutilisables dans les différentes pages
- filters filtres
- images les images
- pages les différentes pages de l'application
- styles les feuilles de styles de l'application
- app.js définitions des routes de l'application et des variables JS à utiliser dans toute l'application
- index.html point d'entrée de l'application
- bower.json configuration des dépendances de l'application. On y trouve le détail des librairies utilisées par l'application
- package.json définition du projet et des dépendances vers des librairies utilisées par Grunt (outil de build
- Gruntfile.js fichier de définition des tâches Grunt
AngularJS, à travers la notion de directives, nous permet de créer des composants réutilisables et une page est en fait un assemblage de composants.
Prenons l'exemple du composant inputText (https://github.com/JCERTIFLab/jcertif-web-2013/tree/master/app/directives/form/inputText). Ce composant permet de fournir un libellé + un champ de saisie représentant une information du formulaire.
Pour que ce composant puisse être réutilisable, il nous faut pouvoir paramétré le contenu du libellé et le nom de la propriété à utiliser dans le formulaire.
Une directive sera, dans notre cas, souvent composée de 2 parties :
app.directive('jcInputText', function () {
return {
restrict: 'E',
replace: true,
templateUrl: 'directives/form/inputText/inputText.html',
scope: {
property: '=',
label: '=',
model: '='
},
link: function (scope, element, attributes) {
}
};
});
app.directive('jcInputText', function () { nous permet de donner un nom à notre composant. Ici jcInputText.
restrict: 'E' indique que nous composant s'utilise comme un élément HTML. Par exemple : <jc-input-text></jc-input-text>
replace: true indique que le composant remplace la partie du DOM où elle est posée.
templateUrl: 'directives/form/inputText/inputText.html' indique la vue utilisée par le composant
scope : ... indique les entrées/sorties du composant. Ici le composant est paramétrable, en bidirectionnel ('='), avec les informations suivantes :
* property : la propriété du champ du formulaire
* label : le libellé du texte à côté du champ
* model : le lien avec un objet javascript
link ... permet d'ajouter de la logique dans le composant
Entre {{ }}, nous plaçons les variables des directives.
<jc-input-text label="..." property="..." model="..."></jc-input-text>
https://github.com/JCERTIFLab/jcertif-web-2013/blob/master/app/pages/register/register.html
Un peu partout dans l'application on peut trouver du code de la forme {{"header.conference" | i18n }}. Le | i18n permet d'appliquer à un code de libellé un filtre défini ici : https://github.com/JCERTIFLab/jcertif-web-2013/blob/master/app/filters/i18n/i18n.js.
Les fichiers https://github.com/JCERTIFLab/jcertif-web-2013/blob/master/app/filters/i18n/en_EN.js et https://github.com/JCERTIFLab/jcertif-web-2013/blob/master/app/filters/i18n/fr_FR.js font la correspondance entre un code de libellé et le libellé à afficher.
Ce mécanisme a pour objectif de fournir la possible de gérer plusieurs langues dans l'application.