角度 ng-grid:如何访问以递增整数命名的 json 属性

Angular ng-grid: How to access json properties named with incrementing integers?

本文关键字:整数 属性 json ng-grid 何访问 访问 角度      更新时间:2023-09-26

所以我正在尝试通过 rest API 使用 json 填充 ng-grid 实例。我已经对此进行了测试,并且可以在设置中工作,因此我知道这不是配置问题。当它工作时,API 返回了一个带有顶级"users"的 json 对象:我认为包含数组的对象。我能够非常轻松地获取用户对象中的值,因为它被命名了。

现在 API 已更改,它将每个用户返回到以递增整数命名的对象中。我不确定如何访问这些属性。这是 json 的精简模型。

{
    "1": {
        "id":"1",
        "first_name":"Bob",
        "last_name":"Jones",
        "email":"bob@jones.com",
        "status":"1"
    },
    "2": {
        "id":"2",
        "first_name":"Mike",
        "last_name":"Jones",
        "email":"mike@jones.com",
        "status":"1"
    },
    "3": {
        "id":"3",
        "first_name":"John",
        "last_name":"Jones",
        "email":"john@jones.com",
        "status":"0"
    }
}

在我的控制器中,我像这样设置网格:

$scope.usersList = usersFactory.list.query()
    .then(function (data){
      return data;
    }, function (error){
      console.log('ruh roh');
    });

然后

$scope.userListGrid = { 
    data: 'usersList',
    enableSorting: true,
    columnDefs: [
      {field:'first_name', displayName:'First name'}, 
      {field:'last_name', displayName:'Last name'},
      {field:'email', displayName:'Email'}, 
      {field:'status', displayName:'Status'}
    ]};

所以我的问题是,如何在不知道其确切名称的情况下访问 json 响应中的第一个子项?我是否需要先遍历它们并将它们放入数组或类似的东西中?

感谢您的帮助!

我真的不认为ng-grid可以直接处理这个问题;你应该在成功回调函数或资源的query()方法的transformResponse回调中将数据转换为数组。