如何使用Angular JS显示数据库数据?

时间:2014-05-28 10:16:33

标签: database angularjs web-applications

如何处理将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

2 个答案:

答案 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>

至于分页,我通常做的是在前端设置分页,并在每个请求中向后端服务器发送limitoffset参数。唯一要记住的是后端必须返回请求的数据和查询表中的项目总数。我通常更喜欢在标题中发送此数字,以便在一个请求中发送所有数据。根据Angular.js的知识(当前限制,偏移和项目总数),可以轻松实现分页。