如何处理将DB表映射到Angular Display,我认为这是WebApps中最常见的要求之一?
有几个因素需要考虑。
1)为了显示记录,2D JSON会没问题吗?
例如:
var myList = function($scope){
$scope.foods = [
{name:"Pizza" , price:100},
{name:"Pasta" , price:50},
{name:"Burger" , price:30},
{name:"Pepsi" , price:10},
{name:"Icecream" , price:15}
]
};
为了刷新视图部分,最好发送一个主要IDN的JSON来刷新视图表单服务器吗?
2)应该在何处处理分页。我认为完整的服务器端分页不会利用Angular的前端功能,如Filter?
短数据说< 1000条记录可能会更好地发送到服务器,而像“搜索”这样的大数据可以分页服务器方面是一个很好的权衡吗?
例如:
Table : Student
IDN Name Univeristy Age
1 Mark USC 21
2 ...
3 ...
4 John UFL 21
答案 0 :(得分:1)
您可以使用ng-grid
http://angular-ui.github.io/ng-grid/
基本上,您只需从服务器发送JSON对象数组,例如foods
示例
要支持大型数据集,您可以在ng-grid
上设置服务器端分页,过滤和排序,您可以通过将params
对象发送回具有页面/过滤器/排序信息的服务器来实现此目的您将需要在服务器API上返回特定数据,例如
$http({
url: "/api/foods",
method: "GET",
params: myPageSortFilter
})
答案 1 :(得分:1)
对象数组绝对正常,并且在ngRepeat
内易于使用。刷新数据时,逻辑取决于您 - 您可以发送索引进行刷新(然后在需要时在模型中更新它们),或者只是从后端请求新的响应。后者显然更容易,但它是否真的更好取决于您的应用程序和您的要求。为了减少资源使用量,请记得在track by
上使用ngRepeat
:
<table>
<tr ng-repeat="user in users track by user.id">
<!-- data -->
</tr>
</table>
至于分页,我通常做的是在前端设置分页,并在每个请求中向后端服务器发送limit
和offset
参数。唯一要记住的是后端必须返回请求的数据和查询表中的项目总数。我通常更喜欢在标题中发送此数字,以便在一个请求中发送所有数据。根据Angular.js的知识(当前限制,偏移和项目总数),可以轻松实现分页。