ein Verfahren in einem Dienst schreiben, die die Daten lösen wird. Rufen Sie in der Methode zuerst $ http auf, um die Daten abzurufen. Nachdem Sie die Daten erhalten haben, rufen Sie den 2. Dienst an, der zusätzliche Informationen hinzufügen wird. Sobald dies erledigt ist (d. H. Das Versprechen für den zweiten Dienst wurde gelöst), beheben Sie die Aktualisierungsdaten. Rufen Sie diese Methode vom Controller aus im Service auf und warten Sie, bis sie wieder gefunden wird. Wenn es wieder aufgenommen wird; "Dann" rufen Sie Ihre Methode für den Bereich auf, der die Daten anzeigt. Ich werde eine Arbeitsgeige für dich veröffentlichen.
Sie können die Geige here überprüfen.
Dienst
myApp.factory('service', function($http, $q) {
var addInfoToData = function(data) {
var deferred = $q.defer();
data.updatedInfo = "Some dummy info";
deferred.resolve(data);
return deferred.promise;
};
//Dummy Method for $http call
var callApi = function() {
var deferred = $q.defer();
var dummyData = {
Id: 1,
Name: "Fake Info",
Value: 15
};
deferred.resolve(dummyData);
return deferred.promise;
}
var getData = function() {
var deferred = $q.defer();
//Replace with $http
callApi().then(function(data) {
addInfoToData(data).then(function(updatedData) {
deferred.resolve(data);
})
})
return deferred.promise;
}
return {
getData: getData
}
})
Hinweis: callApi Methode ist ein Dummy-Methode für $ http Anruf. Ersetzen Sie es durch Ihren tatsächlichen API-Aufruf.
-Controller
function MyCtrl($scope, service) {
$scope.name = 'Superhero';
$scope.abc = function(data) {
data.Value = data.Value/100;
$scope.displayData = data;
}
var getData = function() {
service.getData().then(function(data) {
$scope.abc(data);
})
}
getData();
}
Sie haben einige Berechnung auszuführen und sie in '$ scope.xyz' Variablen speichern und wieder abgeben, dass die Daten –