AngularJS $http get-Daten-Objekt zeigt den status-code anstatt Reaktion
Ich grübelte über diese für Tage und kann immer noch nicht herausfinden, was mache ich falsch, damit irgendwelche Ideen oder selbst Aufnahmen im Dunkeln sind sehr geschätzt. Ich versuche die Anzeige der Antwort von einem rest-service, die Benutzer mit der Verwendung der AngularJS $http-get-Methode, aber wenn ich drucken Sie das Daten-Objekt auf der Konsole, ich erhalte immer wieder die Zahl 200 (ich bin ziemlich sicher es ist, dass Sie mir den status-code). Traf ich Erfolg zu jeder Zeit und nach Absenden der Anfrage, die Chrome-debug-tool zeigt mir die Reaktion mit den richtigen Daten. Ich kann einfach nicht scheinen, um es zu erscheinen, in der eine variable für die Anzeige. Lassen Sie mich wissen, wenn Sie an nichts denken! Danke!
Meine javascript:
$scope.resendDestinations = [];
$scope.resendDestGet = function () {
var omtTypeCodeString = '';
for(var i = 0; i < $scope.mySelections.length; i++){
if(omtTypeCodeString == ''){
omtTypeCodeString = $scope.mySelections[i].orderHeader.omtOrderTypeCode;
}
else{
omtTypeCodeString = omtTypeCodeString + ',' + $scope.mySelections[i].orderHeader.omtOrderTypeCode;
}
}
$http({
method: 'GET',
url: restService.pom + //service url,
respondType: 'json',
headers: {
'Accept': 'application/json',
'Content-Type': 'application/json',
'Access-Control-Allow-Credentials': true
},
params: {
orderTypeCode: omtTypeCodeString,
transactionCode: 3
}
}).success(function (status, data, response, header) {
console.log("Success!");
//TODO see if this is being used... has to be
status = parseInt(status);
$scope.resendDestinations = data.multipleOrders;
if (status == 200 && $scope.resendDestinations.length == 0) {
$scope.bigAlert.title = 'Error',
$scope.bigAlert.header = 'Search Error';
$scope.bigAlert.content = 'Current search parameters do not match any results.';
$scope.showBigAlert();
}
else{
$scope.resendDestinations = data;
console.log("Data DestinationList here: ");
console.log($scope.resendDestinations);
console.log(data.multipleOrders);
console.log(data);
}
$scope.isSearching = false;
}).error(function (response, data, status, header) {
//Do error things
});
return $scope.resendDestinations;
};
Und die service-Antwort:
[{"destCode":3,"destDescr":"Repository","attributes":null},{"destCode":4,"destDescr":"Pipeline","attributes":null},{"destCode":1,"destDescr":"Processor","attributes":null},{"destCode":2,"destDescr":"DEW","attributes":null},
{"destCode":7,"destDescr":"Management System","attributes":null},
{"destCode":8,"destDescr":"Source","attributes":null}]
InformationsquelleAutor AndyVan | 2014-01-09
Du musst angemeldet sein, um einen Kommentar abzugeben.
Haben Sie die Argumente in der falschen Reihenfolge. Es sollte sein:
success(function(data, status, headers, config)
Sehen die docs hier (Klick).
Auch, die
.then()
- Methode wird im Allgemeinen bevorzugt. Wenn Sie wechseln, Sie würden Zugriff auf die Daten wie diese:kein problem! Manchmal, es ist am besten, nur eine kleine Pause nehmen, dann suchen Sie über die docs wieder 🙂
Gute Ratschläge über die Verwendung
.then()
vs..success()
und.error()
InformationsquelleAutor m59