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 " | ||
+ | </ | ||