使用JSON连字符的Angular orderby

时间:2015-01-03 16:10:26

标签: javascript json angularjs angularjs-ng-click

我在一个属性中有一个带连字符的JSON文件。我想使用ng-click对该属性对JSON数据进行排序。

这是我的代码:http://codepen.io/anon/pen/zxooMv

<a href="#" ng-click="orderByField='square-miles'; reverseSort = !reverseSort">

不起作用,也不起作用

<a href="#" ng-click="orderByField=['square-miles']; reverseSort = !reverseSort">

为了让它起作用,我应该使用什么语法?

感谢。

1 个答案:

答案 0 :(得分:3)

orderBy在内部使用$parse服务,它会将您的属性解析为表达式:

square - miles

为了解决这个问题,你可以改为使用你自己的getter函数:

<tr ng-repeat="state in data.states.state|orderBy:orderBy(orderByField):reverseSort">

在你的控制器中:

$scope.orderBy = function(property) {
  return function(item) {
    return item[property];
  };
};

演示: http://codepen.io/anon/pen/RNoZLw