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:td6 [2018/03/20 01:50] – [Fonctionnalités à implémenter] jcheron | richclient:emberjs:td6 [2019/08/31 14:21] (Version actuelle) – modification externe 127.0.0.1 | ||
---|---|---|---|
Ligne 4: | Ligne 4: | ||
|< 100% >| | |< 100% >| | ||
- | | {{:: | + | | {{:: |
< | < | ||
Ligne 18: | Ligne 18: | ||
Vous pouvez au choix : | Vous pouvez au choix : | ||
* Partir de votre propre projet et y inclure les éléments du projet Github | * Partir de votre propre projet et y inclure les éléments du projet Github | ||
- | * Partir du projet GitHub pour y intégrer vos propres fonctionnalités | + | * Partir du projet GitHub pour y intégrer vos propres fonctionnalités |
+ | |||
+ | Dans le cas 2 (récupération du projet Git) : | ||
+ | Dézipper le projet, le renommer (en board-app), aller dans le dossier, puis exécuter : | ||
+ | <sxh bash; | ||
+ | npm install | ||
+ | npm install -g bower | ||
+ | bower install | ||
+ | </ | ||
+ | |||
+ | Vérifier le nom de la base de données (propriété **namespace**) dans le fichier **app/ | ||
+ | |||
+ | Démarrer les serveurs : mongodb, restheart, ember | ||
==== Factorisation des vues ==== | ==== Factorisation des vues ==== | ||
Ligne 88: | Ligne 101: | ||
^Attribut ^Rôle ^ | ^Attribut ^Rôle ^ | ||
|elements | Tableau des objets (models) à afficher | | |elements | Tableau des objets (models) à afficher | | ||
- | |fields | Tableau des champs à afficher : 2 formats acceptés pour chaque champ (chaîne ou objet du type **{name:' | + | |fields | Tableau des champs à afficher : 2 formats acceptés pour chaque champ (chaîne ou objet du type **{name:' |
|operations | Tableau des opérations à afficher sous forme de bouton et associées à chaque objet, chaque élément permet de définir un lien : **{icon:' | |operations | Tableau des opérations à afficher sous forme de bouton et associées à chaque objet, chaque élément permet de définir un lien : **{icon:' | ||
|emptyMessage| Message à afficher si le tableau des objets est vide | | |emptyMessage| Message à afficher si le tableau des objets est vide | | ||
+ | < | ||
+ | L' | ||
+ | |||
+ | __Exemple d' | ||
+ | |||
+ | Créer un composant pour le label : | ||
+ | <sxh bash; | ||
+ | ember g component lbl-value | ||
+ | </ | ||
+ | Implémenter le composant (**value** représente la valeur du champ): | ||
+ | <sxh html; | ||
+ | <span class=" | ||
+ | </ | ||
+ | |||
+ | Mentionner le composant dans la déclaration fields de la route : | ||
+ | <sxh javascript; | ||
+ | import Route from ' | ||
+ | import RSVP from ' | ||
+ | |||
+ | export default Route.extend({ | ||
+ | model(){ | ||
+ | return RSVP.hash({ | ||
+ | developers: | ||
+ | fields: | ||
+ | operations: | ||
+ | }); | ||
+ | } | ||
+ | }); | ||
+ | </ | ||
+ | |||
+ | < | ||
==== Factorisation des routes ==== | ==== Factorisation des routes ==== | ||
Ligne 145: | Ligne 189: | ||
</ | </ | ||
- | ==== Fonctionnalités à implémenter ==== | + | ===== Fonctionnalités à implémenter |
+ | ==== CRUD ==== | ||
<wrap mytodo> | <wrap mytodo> | ||
Ligne 159: | Ligne 204: | ||
* Factoriser au mieux le code | * Factoriser au mieux le code | ||
+ | ==== Route index ==== | ||
<wrap mytodo> | <wrap mytodo> | ||
Ligne 179: | Ligne 225: | ||
</ | </ | ||
- | Il ne reste plus qu'à charger chacun des models dans cette route, pour obtenir le nombre d' | + | Il ne reste plus qu'à charger chacun des models dans cette route, pour obtenir le nombre d' |
+ | |||
+ | <sxh javascript; | ||
+ | import Ember from ' | ||
+ | import RSVP from ' | ||
+ | |||
+ | const { Route, getOwner } = Ember; | ||
+ | |||
+ | export default Route.extend({ | ||
+ | model() { | ||
+ | return RSVP.hash({ | ||
+ | models: getOwner(this).lookup(' | ||
+ | return {name: type.name, | ||
+ | }), | ||
+ | icons: [' | ||
+ | }); | ||
+ | } | ||
+ | }); | ||
+ | </ | ||
+ | |||
+ | Il suffit maintenant de parcourir **model.models** dans le template **index.hbs**, | ||
+ | |||
+ | On pourra utiliser le composant semantic-ui [[https:// |