我的代码如下,
// calls only the API and return it
s.getArchSales = function (url, qParam) {
// set the request object
var req = {
'method': 'POST',
'headers': securitySrv.header, // set the header
'url': url,
'data': qParam
}
return $http(req)
}
var portFolioMixArray = []
for(var i = 0; i < tech.length; i++ ){
s.getArchSales(url, query)
.then(function (response) {
portFolioMixArray.push(response.data)
})
}
tech
也是一个也是动态计算的数组
现在当我console.log(portFolioMixArray)
显示 Array [0] 时,左侧有一个扩展符号,如下所示
我无法访问Array元素。我怎样才能访问它?
答案 0 :(得分:0)
您可以使用portFolioMixArray[0]
如果要绑定html中的值,则需要使用ng-repeat
您应该使用$ scope
喜欢
$scope.portFolioMixArray = []
for(var i = 0; i < tech.length; i++ ){
s.getArchSales(url, query)
.then(function (response) {
$scope.portFolioMixArray.push(response.data)
})
}
// html
<div ng-repeat="item in portFolioMixArray">{{item .YourObjectNmae}}</div>
答案 1 :(得分:0)
当你执行console.log时,当时尚未收到http响应且数组为空,因此您无法访问数组元素。
稍后,收到响应并更新了阵列。这就是为什么你看到带有消息的蓝色图标。
答案 2 :(得分:0)
我认为你应该理解承诺的概念,在Angular中你可以使用$ q。(https://docs.angularjs.org/api/ng/service/ $ q)
您可以像这样访问您的数组:
var promises = tech.map(function (item) {
return s.getArchSales(url, query).then(function (response) {
portFolioMixArray.push(response.data)
})
}
$q.all(promises).then(function () {
console.log(portFolioMixArray);
}