richclient:emberjs:td6

Ceci est une ancienne révision du document !


TD n°6

Ce projet utilise le repository github : boards-app

  • Projet boards
  • Application gestion de projets SCRUM
  1. Factorisation du code
  2. Réutilisation

Vous pouvez au choix :

  • 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

template partagé

Une route peut redéfinir la propriété templateName pour permettre l'utilisation d'un même template par plusieurs routes :

C'est le cas des routes projects/new et projects/update/:project_id qui partagent le template projects/frm.hbs :

import...
...
export default Route.extend({
  templateName: 'projects/frm',
  ...
 }

Composants

Composant ui-form

Le composant ui-form permet de factoriser la création d'un formulaire de modification d'un model (il insère les parties header et footer du formulaire):

Exemple d'utilisation :

{{#ui-form 
           newValue=model.newProject  
           oldValue=model.oldProject 
           validation="save" cancel="cancel" 
           bigIcon='table' isNew=model.isNew 
           header='Project'}}
  <div class="field">
    <label for="name">Name</label>
    {{input id="name" placeholder="Name" value=model.newProject.name}}
  </div>
  ...
{{/ui-form}}

Attribut Rôle
oldValue objet à modifier (model)
newValue copie du model modifiée dans le formulaire
isNew Détermine s'il s'agit d'une insertion ou d'une mise à jour
bigIcon Icône affichée dans l'en-tête
header Type de l'objet affiché dans l'en-tête
validation Action à associer à la validation des données, l'action correspondante devra avoir pour prototype : (oldValue,newValue)
cancel Action à associer à l'annulation des modifications
Composant ui-table

Le composant ui-table permet d'afficher une liste d'objets dans une table (semantic-ui) :

Exemple d'utilisation :

{{#ui-table 
            elements=model.projects
            fields=model.fields 
            operations=model.operations 
            emptyMessage="No project to display"}}
{{/ui-table}}

Attribut Rôle
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:'attribute',caption:'caption'} )
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:'remove red',link:'projects.delete'} ou une action {icon:'edit red',action:'edit'}
emptyMessage Message à afficher si le tableau des objets est vide
  • richclient/emberjs/td6.1521495007.txt.gz
  • Dernière modification : il y a 6 ans
  • (modification externe)