2015-11-29 98 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

更新了答案。快乐它帮助你。 –