【问题标题】:Custom datatable info in angularjsangularjs中的自定义数据表信息
【发布时间】:2016-08-03 14:49:57
【问题描述】:

我同时使用 angulardatatables。我的要求之一是自定义显示条目数的表格信息。这不是我可以使用数据表的语言配置进行的文本更新,但我需要将其移动到表外的 div 中。

我在论坛上看到了这个,但不知道如何在 angularjs 中做到这一点。这是用于分页的,但我仍然可以将其用于.dataTables_info

Pagination control outside datatable

 $(document).ready(function() {
     $("#example").dataTable(); 
     $("#NewPaginationContainer").append($(".dataTables_paginate"));
 });

【问题讨论】:

  • 同时使用 JQuery + Angular 让人头疼。您是否考虑过使用如下的 Angular 指令,ng-table.com/#
  • 我使用的是 angularjs,而不是我在这里粘贴的示例代码。如何在我的指令中使用上述代码的 angularjs 版本
  • 让我们看看你正在使用的实际代码。

标签: javascript angularjs datatable datatables datatables-1.10


【解决方案1】:

正如“Mr White”所指出的,如果您在同一个项目中以“jQuery 方式”使用 angularjs 和 dataTables,您就是在问问题。尽管可能的,但当您尝试使用 dataTables 更高级的功能(例如列渲染)时,您将面临竞争问题和功能损坏。你真的应该考虑使用Angular dataTables,jQuery 数据表的角度指令。

那么这就是说,即使您使用带有或不带有指令的 jQuery dataTables,您也​​需要在 $timeout 中执行此操作,而不是在诸如 initComplete() 之类的回调中执行此操作。这有时会失败,因为当 dataTables 完成时,Angular 不一定已经完成了它的业务。

另外,您所指的解决方案并不完全正确。您是否检查了答案中的链接?它导致完全不同的事情。正确的方法是:

$timeout(function() {
   $('.dataTables_info')  
    .detach()
    .appendTo('#NewPaginationContainer')
})   

演示 -> http://plnkr.co/edit/VHYTFcng0A4w2ipJ7GX5?p=preview

演示使用的是角度数据表,因此您可以看到差异,但即使您没有使用指令,您也应该使用上述方法。

【讨论】:

  • 如果我使用完整的角度方法,我可以只使用像这样的东西 angular.element(document.getElementById('NewInfoContainer'))
  • @bumblebee,它从来都不是“完整的角度方法”,角度数据表仍然只是 jQuery 数据表的指令。当 jQuery 存在时,angular.element() 只是 jQuery 的 alias ...
猜你喜欢
  • 1970-01-01
  • 2020-02-01
  • 1970-01-01
  • 1970-01-01
  • 2020-08-27
  • 1970-01-01
  • 2017-03-12
  • 1970-01-01
  • 2013-02-11
相关资源
最近更新 更多