Différences
Ci-dessous, les différences entre deux révisions de la page.
| Prochaine révision | Révision précédente | ||
| richclient:emberjs:td0 [2018/01/23 17:31] – créée jcheron | richclient:emberjs:td0 [2019/08/31 14:21] (Version actuelle) – modification externe 127.0.0.1 | ||
|---|---|---|---|
| Ligne 1: | Ligne 1: | ||
| ====== TD n°0 ====== | ====== TD n°0 ====== | ||
| - | Exemple de démonstration | + | Exemple de démonstration |
| + | |||
| + | ===== Objectifs ===== | ||
| + | - Créer des routes, des models, utiliser les templates | ||
| + | - Montrer la cohérence et la simplicité du framework | ||
| + | |||
| + | ===== Pré-requis ===== | ||
| + | |||
| + | ==== Installations ==== | ||
| + | * Node + npm | ||
| + | * ember-cli | ||
| + | * WebStorm + ember.js plugin | ||
| + | * plugin **Ember inspector** | ||
| + | |||
| + | ==== Création du projet ==== | ||
| + | |||
| + | Créer le projet **first-app** dans votre dossier local **ember-tds** | ||
| + | |||
| + | <sxh bash; | ||
| + | cd ember-tds | ||
| + | ember new first-app | ||
| + | </ | ||
| + | |||
| + | Démarrer le serveur ember : | ||
| + | |||
| + | <sxh bash; | ||
| + | cd first-app | ||
| + | ember serve | ||
| + | </ | ||
| + | |||
| + | ===== Création d'une route ===== | ||
| + | |||
| + | Création d'une route (se placer dans le dossier du projet) : | ||
| + | |||
| + | <sxh bash; | ||
| + | ember generate route user | ||
| + | </ | ||
| + | |||
| + | ou en version plus courte : | ||
| + | |||
| + | <sxh bash; | ||
| + | ember g route user | ||
| + | </ | ||
| + | |||
| + | L'url **< | ||
| + | |||
| + | |||
| + | ===== Data-binding ===== | ||
| + | |||
| + | Dans app/ | ||
| + | |||
| + | <sxh html> | ||
| + | {{input value=this.nom}} | ||
| + | < | ||
| + | </ | ||
| + | |||
| + | ===== Routage ===== | ||
| + | Cet exemple illustre les routes imbriquées | ||
| + | |||
| + | Créer une route **client** | ||
| + | |||
| + | Définir le model hook dans app/ | ||
| + | |||
| + | <sxh javascript> | ||
| + | export default Route.extend({ | ||
| + | model(){ | ||
| + | return {nom:' | ||
| + | details:' | ||
| + | } | ||
| + | }); | ||
| + | </ | ||
| + | |||
| + | Dans app/ | ||
| + | |||
| + | <sxh html> | ||
| + | < | ||
| + | {{#link-to " | ||
| + | Détails | ||
| + | {{/ | ||
| + | {{outlet}} | ||
| + | </ | ||
| + | |||
| + | Créer une route **client/ | ||
| + | |||
| + | Modifier **app/ | ||
| + | |||
| + | <sxh javascript> | ||
| + | export default Route.extend({ | ||
| + | actions:{ | ||
| + | fermer(){ | ||
| + | this.transitionTo(' | ||
| + | } | ||
| + | } | ||
| + | }); | ||
| + | </ | ||
| + | |||
| + | Modifier le template **app/ | ||
| + | <sxh html> | ||
| + | {{model.details}} | ||
| + | <button {{action " | ||
| + | </ | ||