2015-11-29 97 views
0

我沒有讓我的DtInstance填充後渲染。任何人都面臨這個問題角度DataTable不填充DTInstance

<div ng-controller="InventoryTableController as vm"> 
      <table datatable="" dt-options="vm.dtOptions" dt-columns="vm.dtColumns" 
       dt-instance="vm.dtInstance" 
       class="display table table-bordered table-striped table-hover"></table> 
     </div> 
+0

什麼是你控制器是什麼樣子? –

+0

感謝Alger對此進行調查,我能夠通過vm.dtInstance = null修復它; – Ysak

回答

4

我能夠通過這個https://github.com/l-lin/angular-datatables/issues/365

的問題解決它是由於我初始化時,DataHolder這樣

vm.dtInstance = {}; 

它固定的,當我把它改爲vm.dtInstance = null; 甚至vm.dtInstance = undefined不會工作。

+0

太棒了!做得好。 –

+0

請記住接受您自己的答案,以便未來的訪問者可以看到這是一個可靠的解決方案。 – davidkonrad

+0

你可以在19小時內接受你自己的答案:-) – Ysak

2

對我來說甚至是vm.dtInstance = null;不工作。 我最終經歷了指令的來源,發現dt-instance也可以是一個setter函數。這解決了我的問題。

vm.setDTInstance = function(dtInst){ 
    vm.myTable = dtInst; 
}; 
+0

而你添加了dt-instance =「vm.setDTInstance」或什麼?那就是它?在這之前你的dtInstance是不確定的?你的情況是什麼myTable?我使用的是Angular數據表,所以我沒有定義表格...... – trainoasis

1

只需在這裏添加我的2美分。

對我來說,問題解決了由線程@rosshays解決方案:https://github.com/l-lin/angular-datatables/issues/345

更新2017年12月4日: 按@trainoasis建議,我複製的解決方案在這裏。

在你的控制器

$scope.nested = {}; 
$scope.nested.dtInstance = {} 

而在你的HTML

<table 
    datatable="" 
    class="table table-striped table-hover table-bordered table-condensed" 
    dt-options="dtOptions" 
    dt-columns=dtColumns 
    dt-instance="nested.dtInstance"> 
</table> 
+1

當沒有其他答案時,這也適用於我。我建議你在鏈接旁邊的答案中添加一些關於如何實現這一點的信息,因爲它不需要太多...如果鏈接死亡,將會更有幫助。 – trainoasis

+1

更新了答案。快樂它幫助你。 –