当前位置: 首页 > 面试题库 >

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

洪宇定
2023-03-14
问题内容

这是使用PHP生成的json

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

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


问题答案:

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

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; })
});

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



 类似资料:
  • 问题内容: 我试图通过使用这样的嵌套属性来组织我的状态: 但是像这样更新状态 不起作用。如何正确完成? 问题答案: 为了创建嵌套对象,您可以按照以下方法进行操作,因为我认为setState无法处理嵌套更新。 这个想法是创建一个虚拟对象,对其执行操作,然后用更新的对象替换组件的状态 现在,散布运算符仅创建对象的一级嵌套副本。如果您的状态是高度嵌套的,例如: 您可以在每个级别使用传播运算符来设置状态,

  • 我有一个使用Spring Boot 1.5.1和Spring Data Rest的数据库服务。我将我的实体存储在MySQL数据库中,并使用Spring的PagingAndSorting Repository通过REST访问它们。我发现这表明支持按嵌套参数排序,但我找不到按嵌套字段排序的方法。 我有以下课程: 例如,当使用该方法时: 并调用 URI http://localhost:8080/peo

  • 我使用带有嵌套属性的Vaadin网格,例如。我想用对这些列进行排序,因为是一个LocalDateTime,它总是。但这行不通。我需要为每个这样的列定义一个,我已经使用了很多:-) 这是一个bug还是故意的? 亲切地问候 张秀坤

  • 问题内容: 我正在尝试按属性对一些数据进行排序。这是我tought应该可以工作的示例,但事实并非如此。 HTML部分: JS部分: 结果: A-> AData B-> BData C-> C数据 …恕我直言,应如下所示: C-> C数据 B-> BData A-> AData 我是否错过了某些东西(可以在这里进行JSFiddle的实验)? 问题答案: AngularJS的orderBy过滤器仅支持

  • 问题内容: 我有三个实体,例如注册,用户和国家。基本上,注册属于用户,而用户属于国家。现在,我正在尝试通过以下方式从注册中选择国家/地区名称 这失败了,给我: 生成的hibernate查询: 我注意到在sql中没有联接。这就是为什么查询失败?我怎样才能解决这个问题 ? 问题答案: 尝试像

  • 问题内容: 我有一个带有各种 屏幕 的应用程序。每个屏幕都分配一个URL,如,,,等。 在我的主要HTML文件中,我有一个根据用户选择的路线进行更新的元素。到目前为止,一切都很好。 现在,其中一些屏幕具有子导航。例如,确实有一个收件箱和一个已发送的文件夹。他们用两列显示自己:左侧的子导航,右侧的相应文件夹的邮件。 当您导航到时,它将重定向到,因此 收件箱 基本上是 邮件 的默认子视图。 我该如何设