带有 JSON 连字符的角序

Angular orderby with JSON-hyphen

本文关键字:连字符 JSON 带有      更新时间:2023-09-26

我有一个在一个属性中带有连字符的 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">

我应该使用什么语法才能使其工作?

谢谢。

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