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

时间:2013-09-23 11:31:52

标签: javascript json angularjs ng-grid

所以我试图通过rest API使用json填充ng-grid实例。我已经测试了它,它在设置中有效,所以我知道这不是配置问题。当它工作时,API返回一个顶级“用户”的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响应中的第一个孩子?我是否需要将它们全部循环并将它们放入数组或类似的内容?

感谢您的帮助!

1 个答案:

答案 0 :(得分:1)

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