Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/372.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键进行AngularJS排序_Javascript_Json_Angularjs - Fatal编程技术网

Javascript 使用带空格的JSON键进行AngularJS排序

Javascript 使用带空格的JSON键进行AngularJS排序,javascript,json,angularjs,Javascript,Json,Angularjs,我通过AngularJS应用程序调用API,该API以以下格式返回JSON: [Object, Object] 0: Object $$hashKey: "01" Contact Name: "Michae" Phone Number: "2000000000000" 如图所示,JSON中的键有空格,因此我在我的应用程序模板中使用了以下代码来显示JSON内容: <select ng-model ="sortorder"> <option selected value="{

我通过AngularJS应用程序调用API,该API以以下格式返回JSON:

[Object, Object]
0: Object
$$hashKey: "01"
Contact Name: "Michae"
Phone Number: "2000000000000"
如图所示,JSON中的键有空格,因此我在我的应用程序模板中使用了以下代码来显示JSON内容:

<select ng-model ="sortorder">
  <option selected value="{{contacts['Contact Name']}}">Name</option>
  <option selected value="{{contacts['Phone Number']}}">Contact Name</option>
</select>
<br><br><br>    
<div ng-repeat="contacts in mContactsList | orderBy:sortorder">
  <p>Contact Name: {{contacts['Contact Name']}}</p><br>
  <p>Phone: {{contacts['Phone Number']}}</p><br>
</div>

名称
联系人姓名



联系人姓名:{{contacts['Contact Name']}}


电话:{{联系人['Phone Number']}


在控制器中,我尝试使用:

$scope.sortorder='Contact Name'; 及 $scope.sortorder={{contacts[\'Contact Name\']}}}

但是没有一个有效

我现在遇到的问题是,排序根本不起作用,所以有人能帮我指出我到底做错了什么/遗漏了什么吗?任何例子都值得高度赞赏


如果您要定义自定义的
orderBy
,请多谢。请记住,它将使用当前重复的
联系人作为参数。尝试:

$scope.sortorder = function (contact) {
    return contact["Contact Name"];
}
  • 数组:是需要排序的数组
  • 谓词:是属性。它可以有空格和特殊字符
  • 反向:是否要按反向顺序排序

非常感谢您的帮助
var orderBy = $filter('orderBy');
array = orderBy(array, function(row){return row[predicate]}, reverse);