Ich habe den folgenden Code (siehe unten): MyCtrl1 ist ein Controller einer Ansicht, an die die App je nach URL weitergeleitet wird. Der Controller ruft eine Funktion in einem Modellservice auf, die eine Zusage aus einer HTTP-Anforderung zurückgibt. Das Modell soll etwas in einem anderen Dienst protokollieren responseService, basierend auf Antwort und Rückgabeversprechen an den Controller. Wenn die HTTP-Antwort eine Weile dauert, muss der Benutzer in der Lage sein, die Sichten über die URL zu wechseln, und das Modell funktioniert auf Anfrage immer noch so lange, bis es fertig ist. hier sind meine Fragen:Wechseln von AngularJS-Ansichten während des Wartens auf Versprechen
- die MyCtrl1 ist weg, also das nächste Mal Benutzer schaltet wieder die Ansicht MyCtrl1 es:
Wenn der Benutzer Schalter in der Mitte der HTTP-Anforderung anzuzeigen würde nicht erinnern der Anruf und die Versprechen würde nicht zurückgegeben werden, richtig?
- Funktioniert der Modelldienst immer noch auf http-Anforderung und Aktualisierung responseService, wenn Antwort empfangen wird?
- Wenn letzteres "Nein" ist, wie kann ich es funktionieren lassen? Ich brauche den Benutzer , um Ansichten zu wechseln, während das http funktioniert.
Dank!
myctrl1.controller.js:
angular.module('myApp')
.controller('MyCtrl1', ['$scope', 'myModels', function ($scope, myModels) {
myModels.listMyData().then(
function(response) {
...
},
function(response) {
...
}
);
}]);
myModels.models.js:
angular.module('myApp')
.service('myModels', ['$http', '$q', 'responseService', function($http, $q, responseService) {
this.listMyData = function() {
var promise;
...
$http.get('http://xxx.xxx.xxx').then(
function(response) {
// register something in responseService
// assign promise
},
function(response) {
// register something in responseService
// assign promise
}
);
return promise;
}
}]);