如何访问异步加载的嵌入式数组

时间:2016-01-28 04:32:59

标签: javascript arrays angularjs object

https://gyazo.com/e80eea9f69c0cbb52cc7929d0a46ea2f

对象名称为totalCount
如何从上面访问计数? 我试过了: Object.result并且它未定义了

第二次尝试:

var count = totalCount.result;
for(var i = 0; i < count.length; i++) {
  console.log(count[i])
  // no 'length' property of undefined
}

使用angular

访问此totalCount完全没问题
<div ng-repeat="num in totalCount.result">
  {{ num.count }} // returns 1
</div>

==========================我的答案=================== ===================== @Norguard提到异步检索数据会对加载数据产生一些影响。所以,我把我的数据放在一个承诺中:

exports.totalCount = function ($http) {
    return new Promise(function(resolve, reject) {
        $http.get('/api/count')
                    .success(function (data) {
                        resolve(data)
                    })
                    .error(function (err) {
                        reject(err)
                    })
    })
}

这是我的控制器的草稿:

exports.countController = function ($scope, $http, totalCount) {
    var c = totalCount.then(function(data) {
        console.log(data[0].count)
    })
}

2 个答案:

答案 0 :(得分:0)

如果对象的变量名是totalCount,那么

totalCount.result[0].count

将从您展示的对象示例中返回count 1

以下是其工作原理:

  1. totalCount是对象。
  2. result是一个数组,在您显示的示例中有1个项目。
  3. [0]result数组中的第一个(也是唯一的)项目。
  4. count是您想要的属性。
  5. 因此,totalCount.result[0].countcount对象的0数组中的result项获取totalCount属性。

答案 1 :(得分:0)

totalCount.result[0].count;

但这取决于 ,当你试图访问它以及你如何使用它时。