0
私はでjsonレスポンスを反復するのにng-repeat
を使用しています。 success()
コールバック内では、forループを実行して別のng-repeat
によって処理される新しい配列を作成します。Angular ng-repeatが変化を検出しない
コード:
$http({
method: "GET",
url: "xxx",
headers: {
"Accept": "application/json;odata=verbose"
}
}).success(function (data, status, headers, config) {
$scope.onboardings = data.d.results;
var counter = {};
for (var i = 0; i < $scope.onboardings.length; i += 1) {
counter[$scope.onboardings[i].Company] = (counter[$scope.onboardings[i].Company] || 0) + 1;
}
$scope.onboardingCompanies = counter;
console.log($scope.onboardingCompanies);
})
HTML:
<div ng-repeat="item in onboardingCompanies">
<p>{{item.key}}</p>
<p>{{item.value}}</p>
</div>
だから私は$scope.onboardingCompanies
の変化を検出するためにNGリピートを必要としています。私はここにいくつかの非同期トラブルがあることを知っています。
console.log($scope.onboardingCompanies)
:
Object {Monjasa A/S (FRC): 35, C-bed BV: 2, Monjasa DMCC: 1, Monjasa Pte: 4, Monjasa SA: 9…}
任意のアドバイスはありますか?
ng-repeatは、受信したデータが非同期であっても、反復処理中の配列に更新がある場合、常にオブジェクトを追跡します。あなたのオブジェクトと受信したデータをconsole.logしてください。 – iyerrama25
あなたが繰り返し処理するデータは配列ではなくオブジェクトでもあるので、この場合は次のようにします: