Ich möchte die service(MyService.postData)
nur anrufen, nachdem alle Funktionen in der Fabrikfunktion (MyFactory.getData
) vorbei sind.Warten auf Rückmeldung von der Fabrik, dann weiter zum Serviceanruf
Der Rückgabewert von der Fabrik ist immer falsch oder nicht definiert ist und ich erhalte eine Fehlermeldung zum Senden des Service-Aufrufs:
1. Zuerst eine Funktion definieren, in der Fabrik nennt, die für die Anmeldung in einem Benutzer verwendet wird, durch eine Pop-up-Vorlage
2. Zweitens nur, wenn der Benutzer angemeldet ist, wird der folgende Service-Aufruf vorgenommen werden:
//My AngularJS controller is something like
myApp.controller("firstCtrl", function($scope, MyFactory, MyService) {
$scope.value = MyFactory.getData();
if($scope.value){
MyService.postData("url",params).then(function(){
//do something
});
});
//My AngularJS factory is something like
myApp.factory("MyFactory",function(){
return {
getData: function(){
//open pop up to login
//close pop up get confirmation
return true;
}
});
//My AngularJS service is something like
myApp.service("MyService",function($http){
//do something
});
Die getData in der Fabrik sollte Versprechen basieren. Dann können Sie den Aufruf MyService.postData in seinen then-Block verschieben. – rivarolle