2017-01-05 5 views
0

私のコードにアクセスするには、以下のようなものです、

// 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)ときにアレイを示す以下のように左側に拡張記号と[0]enter image description here

Iは、Array elemenにアクセスできません。 ts。どうすればそれにアクセスできますか?

答えて

0

console.logを実行したとき、http応答はまだ受信されておらず、配列は空であり、したがって配列要素にアクセスできませんでした。

その後、応答が受信され、配列が更​​新されました。そのため、メッセージの青色のアイコンが表示されます。

+0

私はそれを理解しています。しかし、配列へのアクセス方法 – Anijit

+0

ループ内で複数の約束事を使用するケースについては、 '$ q.all'を使うのが理にかなっています。ここの例を見てください - https://toddmotto.com/promises-angular-q#qall –

0

あなたは、HTML内の値をバインドしたい場合は、その後、あなたはあなたが

$scope.portFolioMixArray = [] 
for(var i = 0; i < tech.length; i++){ 
s.getArchSales(url, query) 
    .then(function (response) { 
     $scope.portFolioMixArray.push(response.data) 
    }) 
} 

のように$の範囲

でオブジェクトを使用する必要がありますng-repeat を使用する必要があるportFolioMixArray[0]

を使用してそれを得ることができます//html

<div ng-repeat="item in portFolioMixArray">{{item .YourObjectNmae}}</div> 
+0

portFolioMixArray [0]のショー未定義。それは動作していません – Anijit

0

は、私はあなたが$ 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); 
} 
関連する問題