Différences
Ci-dessous, les différences entre deux révisions de la page.
| Les deux révisions précédentes Révision précédente Prochaine révision | Révision précédente | ||
| richclient:emberjs:td1 [2018/01/20 15:11] – [1.3- Application] jcheron | richclient:emberjs:td1 [2019/08/31 14:21] (Version actuelle) – modification externe 127.0.0.1 | ||
|---|---|---|---|
| Ligne 13: | Ligne 13: | ||
| - | < | + | ==== - Création du repository git ==== |
| - | ==== -- Création du repository git ==== | + | |
| - Créer un dossier **ember-tds** ; | - Créer un dossier **ember-tds** ; | ||
| Ligne 21: | Ligne 20: | ||
| - Publier (commit and push) régulièrement sur github. | - Publier (commit and push) régulièrement sur github. | ||
| - | < | + | ==== - Création du projet ember ==== |
| - | ===== -- Exercice : application Note ===== | + | |
| - | ==== -- Objectifs ==== | + | Créer le projet ember **td1** |
| + | |||
| + | ===== - Exercice : application Note ===== | ||
| + | |||
| + | ==== - Objectifs ==== | ||
| - Créer un projet | - Créer un projet | ||
| - Créer des routes | - Créer des routes | ||
| - Créer/ | - Créer/ | ||
| - Créer des classes et instancier des objets | - Créer des classes et instancier des objets | ||
| - | - Mettre en oeuvre le Data-binding avec [[https:// | + | - Mettre en oeuvre le Data-binding avec [[https:// |
| - | ==== -- Fonctionnalités ==== | + | ==== - Fonctionnalités ==== |
| - Saisir une note (message textuel) et afficher le nombre de caractères restants (le message est limité à 100 caractères saisis) | - Saisir une note (message textuel) et afficher le nombre de caractères restants (le message est limité à 100 caractères saisis) | ||
| - Enregistrer (pseudo enregistrement) | - Enregistrer (pseudo enregistrement) | ||
| Ligne 38: | Ligne 40: | ||
| - Gérer les changements de classe CSS sur l' | - Gérer les changements de classe CSS sur l' | ||
| - | ==== -- Application ==== | + | ==== - Application ==== |
| Fichier **app/ | Fichier **app/ | ||
| + | |||
| + | <sxh bash; | ||
| + | ember g route ex1 | ||
| + | </ | ||
| |< 100% >| | |< 100% >| | ||
| Ligne 52: | Ligne 58: | ||
| ^**Route** | **ex1** | | ^**Route** | **ex1** | | ||
| ^::: | < | ^::: | < | ||
| - | ^Actions | < | + | |
| + | Fichier **app/ | ||
| + | |||
| + | <sxh bash; | ||
| + | ember g controller ex1 | ||
| + | </ | ||
| + | |||
| + | ^Controller | **ex1** | | ||
| + | ^Actions |< | ||
| ^::: | < | ^::: | < | ||
| (*) computed property | (*) computed property | ||
| - | ==== -- Vue ==== | + | ==== - Vue ==== |
| - | === -- helpers handlebars utilisés === | + | === - helpers handlebars utilisés === |
| - | * < | + | * < |
| - | * < | + | * < |
| - | * < | + | * < |
| - | === -- Interface === | + | === - Interface === |
| {{: | {{: | ||
| - | === -- Logique applicative / comportement de l' | + | === - Logique applicative / comportement de l' |
| * sur saisie dans la zone **messageNote** (textarea), le nombre de caractères restants est indiqué dans la zone **status** | * sur saisie dans la zone **messageNote** (textarea), le nombre de caractères restants est indiqué dans la zone **status** | ||
| Ligne 77: | Ligne 91: | ||
| * Sur effacement (à condition que le message ne soit pas vide) : | * Sur effacement (à condition que le message ne soit pas vide) : | ||
| * la zone **info** disparaît | * la zone **info** disparaît | ||
| - | === -- Test en ligne === | + | === - Test en ligne === |
| < | < | ||
| - | ===== -- Exercice : Choix de services ===== | + | ===== - Exercice : Choix de services ===== |
| - | ==== -- Objectifs ==== | + | ==== - Objectifs ==== |
| - Créer des routes avec model | - Créer des routes avec model | ||
| - | - Utiliser des helpers handlebar | + | - Utiliser/ |
| - Mettre en oeuvre le Data-binding | - Mettre en oeuvre le Data-binding | ||
| - Utiliser les tableaux | - Utiliser les tableaux | ||
| - | ==== -- Fonctionnalités ==== | + | ==== - Fonctionnalités ==== |
| - Sélectionner/ | - Sélectionner/ | ||
| - Calculer le montant dû | - Calculer le montant dû | ||
| - Afficher le nombre de services sélectionnés | - Afficher le nombre de services sélectionnés | ||
| - | ==== -- Application ==== | + | ==== - Application ==== |
| + | |||
| + | Fichier **app/ | ||
| + | |||
| + | <sxh bash; | ||
| + | ember g route ex2 | ||
| + | </ | ||
| |< 100% >| | |< 100% >| | ||
| - | ^**Route** | **ex2** (app/ | + | ^**Classe** | **Services** (EmberObject.extend({})) | |
| - | ^::: | < | + | ^::: | < |
| - | ^::: | < | + | ^::: | < |
| - | ^**Contrôleur** | **ServicesController** (app/ | + | ^::: | < |
| - | ^::: | < | + | ^**Route** | **ex2** | |
| - | ^::: | < | + | ^::: | < |
| + | |||
| + | Fichier | ||
| + | |||
| + | <sxh bash; | ||
| + | ember g controller ex2 | ||
| + | </sxh> | ||
| + | |||
| + | |< 100% >| | ||
| + | ^**Controller** | **ex2**| | ||
| + | ^Actions | ||
| (*) computed properties | (*) computed properties | ||
| Ligne 106: | Ligne 136: | ||
| === A utiliser === | === A utiliser === | ||
| - | * [[https:// | + | * [[https:// |
| * [[https:// | * [[https:// | ||
| - | **Services** : à intégrer dans le hook model() | + | **Services** : à passer en paramètre de l' |
| + | <sxh javascript> | ||
| + | Services.create({services: ... }); | ||
| + | </ | ||
| <sxh javascript> | <sxh javascript> | ||
| Ligne 134: | Ligne 167: | ||
| </ | </ | ||
| - | ==== -- Vue ==== | + | ==== - Vue ==== |
| - | === -- helpers | + | === - helpers |
| * Expressions < | * Expressions < | ||
| + | * < | ||
| + | * < | ||
| + | * < | ||
| + | |||
| + | === - helpers à créer === | ||
| + | |||
| + | |< 100% >| | ||
| + | ^Nom ^Paramètres ^Rôle ^ | ||
| + | |plural | count, zero, one, other | Formate une expression correctement en fonction de count | | ||
| + | |format-currency | value, symbol | Formate value en monétaire (2 déc + symbole € par défaut) | | ||
| + | |format-percent| value | Formate value en pourcentage (x100 + symbole %) | | ||
| - | === -- Interface === | + | === - Interface === |
| {{: | {{: | ||
| Ligne 147: | Ligne 191: | ||
| * La sélection/ | * La sélection/ | ||
| - | === -- Ajout code promo === | + | === - Ajout code promo === |
| * La saisie d'un code promo permet d' | * La saisie d'un code promo permet d' | ||
| * La liste des codes est fournie en JS, elle sera a ajouter au model hook | * La liste des codes est fournie en JS, elle sera a ajouter au model hook | ||
| Ligne 160: | Ligne 204: | ||
| {{: | {{: | ||
| - | === -- Test en ligne === | + | === - Test en ligne === |
| < | < | ||