Javascript 带JSON连字符的角度orderby
我有一个JSON文件,其中一个属性中有连字符。我想使用ng click对具有该属性的JSON数据进行排序 这是我的密码: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 要解决这个问题,您可以
不起作用,也不起作用
<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];
};
};