Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/json/15.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/vue.js/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 带JSON连字符的角度orderby_Javascript_Json_Angularjs_Angularjs Ng Click - Fatal编程技术网

Javascript 带JSON连字符的角度orderby

Javascript 带JSON连字符的角度orderby,javascript,json,angularjs,angularjs-ng-click,Javascript,Json,Angularjs,Angularjs Ng Click,我有一个JSON文件,其中一个属性中有连字符。我想使用ng click对具有该属性的JSON数据进行排序 这是我的密码: 不起作用,也不起作用 <a href="#" ng-click="orderByField=['square-miles']; reverseSort = !reverseSort"> 为了让它工作,我应该使用什么语法 谢谢。orderBy在内部使用$parse服务,该服务将解析您的属性作为表达式: square - miles 要解决这个问题,您可以

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

这是我的密码:


不起作用,也不起作用

<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">

演示:

您的建议在演示中起到了魅力。然而,当我添加更多的JSON数据时,它似乎会根据平方英里对数据进行随机排序。。看看这是一个无关的问题。因为平方英里的值是字符串,所以它们按该顺序排序。我假设您期望的是自然排序顺序:blog.codinghorror.com/sorting-for-humans-natural-sort-order如果您将其中一个总体设置为
8888888
并使用默认顺序,您将注意到相同的行为(它不会在顶部):下面是一个将它们转换为数字的示例(这将导致自然排序顺序):啊,是的,自然排序顺序,这就是我要找的!非常感谢!
<tr ng-repeat="state in data.states.state|orderBy:orderBy(orderByField):reverseSort">
$scope.orderBy = function(property) {
  return function(item) {
    return item[property];
  };
};