Table des matières

TD n°1

Tous les exercices utilisent Bootstrap pour la partie CSS.
 ember install ember-bootstrap 

- Création du repository git

  1. Créer un dossier ember-tds ;
  2. Publier ember-tds sur github en tant que nouveau repository ;
  3. Ajouter jcheron à la liste des colaborators de ce projet ;
  4. Publier (commit and push) régulièrement sur github.

- Création du projet ember

Créer le projet ember td1

- Exercice : application Note

- Objectifs

  1. Créer un projet
  2. Créer des routes
  3. Créer/manipuler les templates
  4. Créer des classes et instancier des objets
  5. Mettre en oeuvre le Data-binding avec computed properties

- Fonctionnalités

  1. Saisir une note (message textuel) et afficher le nombre de caractères restants (le message est limité à 100 caractères saisis)
  2. Enregistrer (pseudo enregistrement)
  3. Effacer le contenu
  4. Afficher les messages d'info (sauvegarde, modification…)
  5. Gérer les changements de classe CSS sur l'affichage d'info

- Application

Fichier app/routes/ex1.js

ember g route ex1

Classe Note (EmberObject.extend({}))
content
contenu de la note (par défaut : 'Entrez votre texte')
MAX
nombre maximum de caractères dans la note (par défaut: 100)
info
message temporaire affiché dans la zone info (par défaut: '')
size
retourne le nombre de caractères dispo dans la note (* sur content)
style
retourne le style css à appliquer sur la zone de message (* sur size)
alertVisible
Détermine si l'alert info est visible (* sur info)
Route ex1
model()model hook, doit retourner une instance de Note

Fichier app/controllers/ex1.js

ember g controller ex1

Controller ex1
Actions save()
Pseudo enregistrement (Affiche enregistrement + contenu de la note)
clear()
vide noteContent

(*) computed property

- Vue

- helpers handlebars utilisés

- Interface

- Logique applicative / comportement de l'interface

- Test en ligne

Tester l'appli Note

- Exercice : Choix de services

- Objectifs

  1. Créer des routes avec model
  2. Utiliser/créer des helpers handlebar
  3. Mettre en oeuvre le Data-binding
  4. Utiliser les tableaux

- Fonctionnalités

  1. Sélectionner/désélectionner des services
  2. Calculer le montant dû
  3. Afficher le nombre de services sélectionnés

- Application

Fichier app/route/ex2.js

ember g route ex2

Classe Services (EmberObject.extend({}))
services
tableau des services (par défaut: [])
countActive
Retourne le nombre de services actifs (* sur services.@each.active)
sumActive
Retourne le montant total correspondant aux services actifs (* sur services.@each.active)
Route ex2
model()model hook, doit retourner une instance de Services initialisée avec le tableau ci-dessous

Fichier app/controllers/ex2.js

ember g controller ex2

Controller ex2
Actions toggleActive(service)
Change le statut du service

(*) computed properties

A utiliser

Services : à passer en paramètre de l'instance de la classe Services

Services.create({services: ... });

[
	{
		"name": "Web Development",
		"price": 300,
		"active":true
	},{
		"name": "Design",
		"price": 400,
		"active":false
	},{
		"name": "Integration",
		"price": 250,
		"active":false
	},{
		"name": "Formation",
		"price": 220,
		"active":false
	}
]

- Vue

- helpers utilisés

- helpers à créer

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

Services app

-- Logique applicative / comportement de l'interface

- Ajout code promo

{
  "B22":0.05,
  "AZ":0.01,
  "UBOAT":0.02
}
Services app

- Test en ligne

Tester l'appli Services