2015-08-19 46 views
2

我想建立一個指令來顯示數據的表。Ng-transclude不能使用表元素

該表具有標題和正文。

理想我想有以下指令:

<div my-table></div> 
<div my-table-header></div> 
<div my-table-body></div> 

所以,我可以用NG-transclude使用它們

<div my-table> 
    <div my-table-header></div> 
    <div my-table-body></div> 
</div> 

然而,這並不與下面的模板工作,我-table:

<table class="table" ng-transclude></table> 

當頁面呈現時,我最終得到以下內容:

<div my-table="" class="ng-scope"> 



      1 
      2 




      a 
      b 



     </div> 

我見過一些提到ng-transclude不能很好地處理表格的問題。例如,如果你把

<table><div ng-transclude></div></table> 

瀏覽器移動NG-transclude格表外

,我想知道如果任何人有任何經驗,解決這個問題,因爲它似乎是一個相當合理的事想做。

乾杯!

回答

0

這不是唯一的解決方案(我希望)。然而,我發現,使這項工作的唯一辦法就是讓我的表的tempate是

<tbody ng-transclude> 
</tbody> 

然後在標記指定上表中的指令作爲一個屬性

<table my-table> 
    <my-table-header></my-table-header> 
    <my-table-body></my-table-body> 
</table> 

這是唯一的形式,我已經能夠使這項工作英寸

表中的元素

<table> 
    <tbody ng-transclude></tbody> 
</table> 
包纏我的表模板

或將NG-transclude上表本身

<table ng-transclude></table> 

然後實例它作爲一個div或作爲元素完全不

<div my-table></div> 
<my-table></mytable> 

TL工作的屬性;博士

此解決方案有效,但由於以下原因,我不喜歡它:

  1. 不能使用指令é形式或一個表格上表以外的任何
  2. 需要嵌套<thead>外內<tbody>