2015-10-16 48 views
1

我开始了一个新项目,前端使用了AngularJS和BootStrap。现在开始使用表格呈现数据。我正在评论nggrid,ngtable,智能表等。我已经看到了StackO问题Best way to represent a Grid or Table in AngularJS with Bootstrap 3?。我看到它有点老,正在看最新版本的评论。有人可以推动我的一些评论,所以我可以选择一个。预先要求的一个要求是我有很多数据要展示,没有什么不寻常的。我们正在为桌面医院管理系统应用程序构建一个Web前端,这些表的运行时间可能会达到几百和几百万次。带有angularJs和BootStrap的表

回答

1

我已经尝试了智能表,发现当渲染有很多列的表时发现这太慢了。

然后我试了几个其他表选项,发现它们也太慢了。现在我只需使用ng-repeat与角度分页指令。 Howerver,我打算尝试切换到与角料使用virtualRepeat:

virtual repeat

角材料带来了许多其他强大的功能也一样,这是值得一试。如果需要的话,你需要实现你自己的排序,但这非常简单 - 添加ng-click会触发一个函数对数组进行排序(可能还使用$ filter创建自定义orderBy函数)。

编辑:有使用虚拟重复一些限制,但如果你不介意有固定的列宽,那么它工作得很好:simple table virtual repeat example

<md-virtual-repeat-container id="vertical-container">你的桌子周围,用<tr md-virtual-repeat="...">遍历表行,给行固定的宽度。然后,一个单独的表格可以显示上面的标题,也可以为每个标题使用固定的宽度。

+1

我不知道角材料。看看它。 – VivekDev

+1

我刚刚检查过,虚拟重复目前不容易兼容表头:http://codepen.io/anon/pen/KdyPwe - 他们与项目滚动,所以目前我会建议使用分页指令自己的ng-repeat实现。我已经提出了角度材料的功能要求,以支持他:https://github.com/angular/material/issues/5204 – Sam

+1

我使用了智能表,并对结果感到满意。我们有大约300K条记录,只需要确保做一些服务器端分页/排序。我喜欢它,因为它暴露了TABLE HTML标记,因此您可以轻松控制它的外观。 –

1

我试过ng-table,但并不认为这是一个很好的选择,我发现它很难使用,但也许我只是没有投入时间。