Ich möchte ein Array erstellen, einige Objekte enthält
Erstens bekomme ich eine erste Anordnung von dem Server eine Liste von Geräten wie diese
[
{accountID : "sysadmin",deviceID : "123"},
{accountID : "sysadmin",deviceID : "3"}
...
]
Dann enthält ich schaffe eine zweite Anordnung einige Objekte enthält, die jedes Objekt ein Gerät darstellen (deviceID) und enthält ein Array von Ereignissen dieser Vorrichtung, die ich von dem Server erhalten
ich tun, um eine Schleife auf dem ersten Array wie folgt:
$scope.myArrayofDevices = [];
angular.forEach(response, function(device){
$scope.myObject={};
$scope.myObject.device = device.deviceID;
$http.get('events')
.success(function (data) {
$scope.myObject.events = data;
});
$scope.myArrayofDevices.push($scope.myObject);
});//end for loop
Ich erhalte Ereignisdaten vom Server richtig.
Aber, wenn ich $scope.myArrayofDevices
Array überprüfen erhalte ich ein das erste Objekt nur mit dem deviceID und kein Ereignis-Array und das zweite Objekt mit deviceID und Ereignisse Array korrekt
wie folgt aus:
[
{deviceID : 123, events:},
{deviceID : 3 , events : array[5]}
]
Wie kann ich dieses Problem lösen?
Bitte beachte, dass ich versuche, ein Array zu $scope.myObject.events
zuweisen es funktioniert perfekt das Problem, eine Schleife mit $ http verwendet
versuchen, eine neue Variable 'myObject' innerhalb der forEach Callback-Funktion zu definieren. benutze 'var myObject = {}' anstelle von '$ scope.myObject = {}' – Titus
danke @Titus deine Idee löste mein Problem – Taha