Ich habe Probleme beim Aktualisieren meines Bereichs von innerhalb dieser Funktion updateRefresh()
. Die erste Iteration kann ich sehen, dass message == "test"
, und dann ist es überschreibt, was im Rahmen ist, aber auf meiner HTML-Seite, was sie verbindlich ist, <span>{{refreshDomainStatus.message}}</span>
wird noch an das Objekt gebunden, wo message="test"
Scope-Bindung nicht in HTTP-Aufruf aktualisieren
ich $scope.$apply()
versucht, aber es sagt, dass $digest
derzeit in Bearbeitung ist.
app.controller('AssessmentController', ['$scope', '$http', '$timeout', 'ConnectionService', function ($scope, $http, $timeout, connectionService) {
$scope.refreshDomainStatus = {
message: "test"
};
var updateRefresh = function(updateKey) {
$http.get('/assessment/api/update-refresh-domain/' + updateKey).success(function(response) {
$scope.refreshDomainStatus = response.refreshDomainStatus;
if (!response.refreshDomainStatus.halted) {
$timeout(function() { updateRefresh(updateKey); }, 250);
}
});
}
Nach Abschluss und Prüfung der Kontext:
Wenn Sie 'console.log (response.refreshDomainStatus);' in Ihrer 'updateRefresh()' Methode, was die Ausgabe? Auch offensichtliche Frage, aber Sie rufen 'updateRefresh()' irgendwo auf, um die ganze Schleife zu beginnen, richtig? – Lex
Ja, ich rufe es an, den ganzen Prozess zu starten. Erste Iteration: 'response.refreshDomainStatus => Objekt {Fehler: false, Nachricht:" Abrufen der Benutzerliste ", angehalten: false}'. '$ scope.refreshDomainStatus => Objekt {Fehler: true, Nachricht:" test ", angehalten: false}'. Bei der zweiten Iteration wurde $ scope.refreshDomainStatus gesetzt. Scheint so, als wäre es korrekt. Wenn ich den Geltungsbereich des Elements überprüfe, das immer noch "test" sagt: angle.element ($ 0) .scope(). RefreshDomainStatus => Objekt {message: "test", angehalten: false, error: false} ' – Bluebaron