具有AngularJS中的可枚举属性的OrderBy

时间:2014-10-10 13:07:48

标签: angularjs angularjs-ng-repeat

我有一个对象数组,其中每个对象都可以有一个属性数组,比如

 [
  {
    name: 'Big house',
    properties: [{name: 'Area',value: '400'}, {name: 'Year',value: '1950'}]
    },
  {
    name: 'Small house',
    properties: [{name: 'Area',value: '400'}, {name: 'Year',value: '1950'}]
    },
  {
    name: 'Green house',
    properties: [{name: 'Area',value: '40'}, {name: 'Year',value: '2008'}]
    },
  {
    name: 'Red house',
    properties: [{name: 'Area',value: '250'}, {name: 'Year',value: '1999'}]
    },
]; 

现在我想通过其中一个属性(比如Area)使用ng-repeat中的过滤器来命令此列表。这可能吗?

我在plunker(http://plnkr.co/edit/GEgLxv5zJyW0ZBTtJR5S?p=preview)中一直在玩这个但是无法弄明白该怎么做。

提前致谢

1 个答案:

答案 0 :(得分:0)

如果区域始终是第一个属性,这将起作用:

<tr ng-repeat="house in houses | orderBy:'properties[0].value'">

还要确保该区域被定义为整数,现在它们是字符串。所以250将在40之前排序。

请删除数字中的引号:

  {
  name: 'Area',
  value: 400
  }
  , {
  name: 'Year',
  value: '1950'
  }