| Les deux révisions précédentes Révision précédente Prochaine révision | Révision précédente |
| richclient:emberjs:td3 [2019/02/24 16:22] – [-- Fonctionnalités] jcheron | richclient:emberjs:td3 [2019/08/31 14:21] (Version actuelle) – modification externe 127.0.0.1 |
|---|
| |< 100% >| | |< 100% >| |
| | {{::ember.png?150|}} | Tous les exercices utilisent [[https://getbootstrap.com|Bootstrap]] pour la partie CSS. <sxh bash;gutter:false> ember install ember-bootstrap </sxh> | | | {{::ember.png?150|}} | Tous les exercices utilisent [[https://getbootstrap.com|Bootstrap]] pour la partie CSS. <sxh bash;gutter:false> ember install ember-bootstrap </sxh> | |
| | ::: | Pour passer à la v4 de bootstrap (sass requis) : <sxh bash;gutter:false> npm install --save-dev ember-cli-sass | |
| ember generate ember-bootstrap --bootstrap-version=4</sxh> | | |
| | ::: | pour les fonts : <sxh bash;gutter:false>ember install ember-font-awesome</sxh> | | | ::: | pour les fonts : <sxh bash;gutter:false>ember install ember-font-awesome</sxh> | |
| <html></div></html> | <html></div></html> |
| <html></div></html> | <html></div></html> |
| |
| Renommer le projet **td2** en **td2-3** | <html><div class="note"></html> |
| | Le plugin **ember-local-storage** remplace le module **ember-localstorage-adapter** auquel la documentation officielle emberJS fait référence. |
| | <html></div></html> |
| |
| Ajouter le plugin **ember-localstorage-adapter** pour stocker des models côté client : | Ajouter le plugin **ember-local-storage** pour stocker des models côté client : |
| |
| <sxh bash;gutter:false> | <sxh bash;gutter:false> |
| ember install ember-localstorage-adapter | ember install ember-local-storage |
| </sxh> | </sxh> |
| |
| Définir le namespace **contact-app**, clé sous laquelle les données seront enregistrées dans le local storage | Définir le namespace **contact-app**, clé sous laquelle les données seront enregistrées dans le local storage |
| <sxh javascript;title:app/adapters/application.js> | <sxh javascript;title:app/adapters/application.js> |
| import LSAdapter from 'ember-localstorage-adapter'; | import Adapter from 'ember-local-storage/adapters/local'; |
| |
| export default LSAdapter.extend({ | export default Adapter.extend({ |
| namespace: 'contact-app' | modelNamespace: 'contact-app' |
| }); | }); |
| </sxh> | </sxh> |
| |
| <sxh javascript;title:app/serializers/application.js> | <sxh javascript;title:app/serializers/application.js> |
| import { LSSerializer } from 'ember-localstorage-adapter'; | export { default } from 'ember-local-storage/serializers/serializer'; |
| | |
| export default LSSerializer.extend(); | |
| </sxh> | </sxh> |
| |
| ===== Gestion des contacts ===== | ===== Gestion des contacts ===== |
| ==== -- Objectifs ==== | ==== - Objectifs ==== |
| - Models et Store | - Models et Store |
| - Computed properties | - Computed properties |
| ^::: | <html><span class="variable">prenom</span></html>\\ string | | ^::: | <html><span class="variable">prenom</span></html>\\ string | |
| ^::: | <html><span class="variable">email</span></html>\\ string | | ^::: | <html><span class="variable">email</span></html>\\ string | |
| ==== -- Route/Model/actions ==== | ==== - Route/Model/actions ==== |
| |
| === /contacts === | === /contacts === |
| ^**actions** | <html><span class="method">updateContact(datas)</span></html>\\ Modifie le contact dans le store | | ^**actions** | <html><span class="method">updateContact(datas)</span></html>\\ Modifie le contact dans le store | |
| |
| ==== -- Vues ==== | ==== - Vues ==== |
| |
| === -- Interface === | === - Interface === |
| {{:slam4:richclient:angularjs:ex3.png?600|}} | {{:slam4:richclient:angularjs:ex3.png?600|}} |
| |
| <html><a target="_new" href="http://angular.kobject.net/ex4" class="btn">Tester l'appli <b>Gestion de contacts</b></a></html> | <html><a target="_new" href="http://angular.kobject.net/ex4" class="btn">Tester l'appli <b>Gestion de contacts</b></a></html> |
| |
| === -- Logique applicative / comportement de l'interface === | === - Logique applicative / comportement de l'interface === |
| |
| * Zone filter : filtre l'ensemble des contacts affichés. | * Zone filter : filtre l'ensemble des contacts affichés. |