Partage
  • Partager sur Facebook
  • Partager sur Twitter

Inclure une directive entre 2 lignes d'un tableau

Sujet résolu
    14 septembre 2017 à 13:29:59

    Bonjour,

    j'ai créé un tableau et j'aimerais insérer une directive <child> (que j'ai créé) entre les lignes du tableau.

    L'idéal pour moi ensuite est d'afficher la ligne supplémentaire (venant de la directive) en cliquant sur un bouton (ça sera l'étape suivante)

    Après plusieurs tentatives, j'ai uniquement réussi à l'insérer dans une cellule de chaque ligne du tableau,avant ou après le tableau, mais pas entre les lignes ....

    Mon HTML:

    <div>
       <table>
           <tr ng-repeat="info in $data">
             <td id="col1">
                 <p> info1: {{info.x}}</p>
                 <p> info1: {{info.y}}</p>
             </td>
             <td id="col2">
                 <p> info2: {{info.z}}</p>
                 <p> info2: {{info.a}}</p>
             </td>
             <td id="col3">
                 <p> info3: {{info.b}}</p>
                 <p> info3: {{info.c}}</p>
             </td>
           <child></child>
           </tr>
       </table>
    </div>

    Avez vous une idée ? Dois je changer l'architecture de mon tableau ?

    J'espère que vous pourrez m'apporter une solution à mon problème. 

    Merci.

    -
    Edité par elgringo95 15 septembre 2017 à 4:06:07

    • Partager sur Facebook
    • Partager sur Twitter
      14 septembre 2017 à 14:26:01

      Salut,

      je connais pas <child> en html5, il sert a quoi ?

      • Partager sur Facebook
      • Partager sur Twitter
        15 septembre 2017 à 4:07:14

        Salut 1nsan3, 

        c'est une directive personnelle que j'ai crée. Désolé j'ai oublié de le préciser ...

        En faite c'est une ligne avec des informations que j'aimerais insérer sous chaque ligne de mon tableau construit avec le ng-repeat.

        Un peu comme ça : https://datatables.net/examples/api/row_details.html

        C'est faisable à l'aide d'une directive personnelle qui serait appelée à chaque clic sur un bouton?

        -
        Edité par elgringo95 15 septembre 2017 à 4:40:01

        • Partager sur Facebook
        • Partager sur Twitter
          15 septembre 2017 à 7:38:40

          Bonjour,

          en HTML5 on ne crée pas de nouveaux éléments comme ça, attention (pour ça, il faut faire du XML, ou jouer avec les WebComponents, mais c'est pas prêt encore).

          En gros tu veux du master-details ? Tu donnes l'exemple de DataTables, pourquoi ne pas utiliser ce plugin justement, au lieu de réinventer la roue ? (bon, c'est vrai qu'il a une dépendance à jQuery…)

          • Partager sur Facebook
          • Partager sur Twitter

          Pas d'aide concernant le code par MP, le forum est là pour ça :)

            15 septembre 2017 à 10:58:41

            Bonjour Lamecalate, 

            Ce qui me gène avec ce plugin, c'est que les données ajax sont dans un fichier texte alors que moi non ... je récupère mes données avec des requêtes HTTP (j'utilise NodeJS). Est-il possible de ne pas se servir d'un fichier texte mais des données du serveur ? Si oui, comment je peux faire ?

            désolé si mes questions sont idiotes, je débute en développement web.

            Merci

            • Partager sur Facebook
            • Partager sur Twitter
              15 septembre 2017 à 11:13:43

              > les données ajax sont dans un fichier texte

              Euh ? Le principe d'AJAX c'est d'aller justement faire des requêtes HTTP vers le serveur.

              Ah, tu veux parler de l'exemple donné ici : https://www.datatables.net/examples/data_sources/ajax.html . Mais si tu lis la doc https://datatables.net/reference/option/ajax il y est expliqué que tu as plus de manières d'attraper du contenu, et notamment en précisant une url (dans tous les cas la ressource, qu'elle soit posée sur le serveur ou générée à la volée, doit être du JSON).

              • Partager sur Facebook
              • Partager sur Twitter

              Pas d'aide concernant le code par MP, le forum est là pour ça :)

                19 septembre 2017 à 6:37:37

                J'ai essayé d'utiliser ce plugin mais pas moyen, j'ai une erreur "TypeError: Cannot read property 'mData' of undefined", et j'ai aucune ligne supplémentaire qui s'affiche en dessous .... j'ai évidement chercher sur le net et j'ai pas trouvé de solution qui correspondait à mon problème :( D'après mes résultats,  mon problème viendrait de ma définition de mon tableau (pas de thead et tbody) alors que mon tableau est correct (contient bien ces balises)

                -
                Edité par elgringo95 19 septembre 2017 à 6:39:37

                • Partager sur Facebook
                • Partager sur Twitter
                  19 septembre 2017 à 7:09:55

                  Est-ce que tu aurais une page en ligne pour qu'on voie ça ?

                  (je vais déplacer ce sujet vers le forum JavasScript)

                  • Partager sur Facebook
                  • Partager sur Twitter

                  Pas d'aide concernant le code par MP, le forum est là pour ça :)

                    19 septembre 2017 à 9:35:23

                    Bonjour,

                    tu peux utiliser la librairie DataTable sans même faire d'appel AJAX il suffit d'appliquer la méthode "DataTable" à ton tableau.

                    https://datatables.net/examples/basic_init/zero_configuration.html 

                    https://datatables.net/examples/advanced_init/column_render.html 

                    Même si l'AJAX est tout à fait possible dans ton cas pour une première approche de la librairie je pense que commencer par la base est bien.

                    Et tout dépend de ce que tu veux (si tu n'as pas la nécessité de reload ton datatable avec les données du serveur pas besoin d'AJAX)

                    Bonne chance ;)

                    • Partager sur Facebook
                    • Partager sur Twitter
                    Développeur web aimanté par les projets prometteurs
                      19 septembre 2017 à 10:00:13

                      Non désolé ma page n'est pas en ligne :(

                      J'abandonne l'idée d'utiliser ce plugin, la construction de mon tableau initiale ne s'y prête pas.

                      Je voudrais maintenant ne pas insérer de sous ligne, mais afficher ces infos à l'aide d'info-bulles. Est-ce possible d'afficher un tableau d'une page html (où j'ai mes infos, que j'appelle à l'aide d'une directive) dans une info-bulles au passage de ma souris sur un bouton ??

                      (Peut etre que je devrais réouvrir un autre sujet ?)

                      Merci pour votre aide.

                      -
                      Edité par elgringo95 19 septembre 2017 à 10:12:26

                      • Partager sur Facebook
                      • Partager sur Twitter
                        19 septembre 2017 à 10:07:18

                        Ah zut, désolée de t'avoir fait persister dans cette voie…

                        • Partager sur Facebook
                        • Partager sur Twitter

                        Pas d'aide concernant le code par MP, le forum est là pour ça :)

                          19 septembre 2017 à 10:18:54

                          Pas de problème, merci de m'avoir répondu :)

                          J'ouvre un autre sujet pour savoir comment afficher une directive dans une info-bulle :)

                          • Partager sur Facebook
                          • Partager sur Twitter
                            26 septembre 2017 à 13:01:34

                            Hello je reviens vers vous concernant Datatable :) 

                            je n'ai finalement pas abandonné !!! c'est possible d'utiliser ng-repeat dans la fonction format() de DataTable ??? parce qu'il ne le prend pas en compte le ng-repeat et n'aime pas les {{ }} dans mon code :(

                            Faire quelque chose comme ca :

                            function format(data){
                              return '<table>'+
                                  '<tr ng-repeat="act in $data">' + 
                                  '<td>code:</td>' +
                                  '<td>'+{{data.code}}+'</td>' +
                                  '</tr>'+
                                  '</table>';
                            }
                            



                            Merci :)

                            -
                            Edité par elgringo95 26 septembre 2017 à 13:08:24

                            • Partager sur Facebook
                            • Partager sur Twitter

                            Inclure une directive entre 2 lignes d'un tableau

                            × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
                            × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
                            • Editeur
                            • Markdown