2016-09-19 2 views
0

Comment ajouter un rowspan à l'en-tête dynamique ng-table pour les colonnes non filtrables? deEn-tête angulaire ng-table rowspan si aucun filtre

enter image description here Ce code exemple peut être trouvé à http://codepen.io/ike3/pen/wzzgzG

Tout ce que je veux est de mettre rowspan="2" pour l'âge et l'argent th. Il semble que je peux créer un modèle personnalisé pour l'en-tête et le filtre, mais je ne peux pas contrôler la structure de la table elle-même.

+0

Avez-vous essayé http://ng-table.com/#/filtering/demo-multi-template – hurricane

+0

Il semble qu'il permet de combiner des cellules par 'colspan' mais pas pour les lignes. Je veux combiner l'en-tête de Money avec la cellule de filtre vide. Est-ce possible? – ike3

Répondre

0

j'ai réussi à le faire avec jQuery, mais il ressemble à un hack:

modèle de filtre personnalisé:

<script type="text/ng-template" id="/filters/rowspan"> 
    <filter-row-span></filter-row-span> 
</script> 

et une directive:

.directive('filterRowSpan', function() { 
    return { 
     link: function($scope, element, attrs) { 
      var idx = $(element[0]).parents("th").index(); 
      var tbl = $(element[0]).parents(".table"); 
      for (var i = 0; i < idx; i++) { 
       var rs = tbl.find("thead > tr:first-child th:nth-child(" + (1+i) + ")").attr("rowspan"); 
       if (rs) idx++; 
      } 
      tbl.find("thead > tr:nth-child(2) th:nth-child(" + (1+idx) + ")").remove(); 
      tbl.find("thead > tr:first-child th:nth-child(" + (1+idx) + ")").attr("rowspan", 2).addClass("no-filter"); 
     } 
    }; 
}) 

Peut-être qu'il ya une meilleure façon .