2017-01-11 36 views
0

我有一個帶有可變列號的數據表,我需要向它添加行。Angular datatables - 在動態列表中添加行

這就是我如何設置列:

var columns = getColumnsName(); 
columns.forEach(function(column, index){ 
    dtColumns.push(DTColumnBuilder.newColumn(index).withTitle(column)); 
}); 

這隻能在我不要把<tr><tbody>。如果我把裏面<tr><tbody>,我得到了以下錯誤:

TypeError: Cannot read property 'length' of undefined 
    at _fnGetRowElements (jquery.dataTables.js:3021) 
    at HTMLTableRowElement.<anonymous> (jquery.dataTables.js:2428) 
    at jquery.js:144 
    at Function.map (jquery.js:467) 
    at jQuery.fn.init.map (jquery.js:143) 
    at _fnAddTr (jquery.dataTables.js:2427) 
    at loadedInit (jquery.dataTables.js:1307) 
    at HTMLTableElement.<anonymous> (jquery.dataTables.js:1332) 
    at Function.each (jquery.js:374) 
    at jQuery.fn.init.each (jquery.js:139) 

需要注意的是,如果我不能把一個<tr>,我不能把一個ng-repeat重複內<tbody>我的數據。

我好像在上面的錯誤,當我有<tr>裏面<tbody>沒有足夠的<td>裏面。假設我知道我有多少列,並把這個<td>內的<tr>正好數,我不會得到這個錯誤...


編輯

至於問,這裏有雲的HTML:

<table dt-options="ctrl.dtOptions" dt-columns="ctrl.dtColumns" dt-column-defs="ctrl.dtColumnDefs" datatable="ng"> 
    <thead></thead> 
    <tbody></tbody> 
</table> 
+1

請添加您的html標記。它可能有助於解決問題。 – DDelgro

+0

在問題處添加編輯。 –

回答

1

請嘗試注入$超時後下。

$timeout(function(){ 

     var columns = getColumnsName(); 
     columns.forEach(function(column, index){ 
     dtColumns.push(DTColumnBuilder.newColumn(index).withTitle(column)); 
     }); 
    }); 
+0

沒有工作:(得到這個消息:'TypeError:無法讀取屬性'parentNode'的null'。 –