小编典典

如何使用嵌套属性在AngularJS中排序

angularjs

这是使用PHP生成的json

[{"Sale":{"id":"1","customer_id":"1","amount":"15","created":"2014-05-17"}}]

这样做orderBy:id显然行不通。我在其他文章中读到,需要为这种数据结构创建一个orderBy函数。我无法创建该功能。谁能告诉我解决此问题的正确方法是什么?


阅读 221

收藏
2020-07-04

共1个答案

小编典典

这些类型的数据操作我希望将它们保留在适当的角度对象中,因此,我将创建自定义过滤器,如下所示:

var sampleSource=  [{"Sale":{"id":"8","customer_id":"1","amount":"15","created":"2014-05-17"}}, {"Sale":{"id":"5","customer_id":"6","amount":"15","created":"2015-05-17"}}];

var myApp = angular.module('myApp',[]);

myApp.filter('myFilter', function() {
 return function(items) {  
    items.sort(function(a,b){   
        if (parseInt(a.Sale.id) > parseInt(b.Sale.id))
            return 1;
        if (parseInt(a.Sale.id) < parseInt(b.Sale.id))
            return -1;         
        return 0; })
});

重要提示:
我建议您使用自定义过滤器,因为出于个人喜好,我不喜欢在控制器或其他对象上加载我可以在其他对象上分离的任务(代码),这给我带来了更多的独立性和更简洁的代码(我喜欢的一件事)有角度的),但除了个人喜好外,我想这
不是 唯一的方法,但是如果您分享背后的原因,希望对您有所帮助。

2020-07-04