【问题标题】:AngularJS sorting using JSON keys with spacesAngularJS 使用带空格的 JSON 键进行排序
【发布时间】:2014-03-10 13:12:55
【问题描述】:

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

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

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

$scope.sortorder = '联系人姓名'; 和 $scope.sortorder = '{{contacts[\'联系人姓名\']}}';

但没有一个工作......

我现在遇到的问题是排序根本不起作用,所以有人可以通过指出我到底做错了什么/缺少什么来帮助我吗?任何例子都非常感谢

谢谢

【问题讨论】:

    标签: javascript json angularjs


    【解决方案1】:

    如果您要定义一个自定义orderBy——请记住,它需要一个以您当前重复的contact 作为参数的函数。试试:

    $scope.sortorder = function (contact) {
        return contact["Contact Name"];
    }
    

    【讨论】:

    • 非常感谢您的帮助
    【解决方案2】:
    var orderBy = $filter('orderBy');
    array = orderBy(array, function(row){return row[predicate]}, reverse);
    
    • array:是你需要排序的数组
    • 谓词:是属性。可以有空格、特殊字符
    • reverse:是否要逆序排序

    【讨论】:

      猜你喜欢
      • 2015-12-05
      • 2014-03-29
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-07-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多