I eine Winkel Anwendung, die den Wert von einer Controller-Methode durch einen einfachen Ausdruck Bindung zurück zeigt:Endlosschleife mit kantigem Ausdruck Bindung
<div>{{getValue()}}</div>
Wenn die Methode in Frage, nur einen Wert zurückgibt, wird die Methode aufgerufen zweimal, und das ist seltsam genug:
$scope.getValue = function(){
return 'some value';
}
Aber wenn das Verfahren einige asynchrone funktionierts wie eine Datei vom Server erhalten, geht der Code in eine Endlosschleife:
$scope.getValueAsync = function(){
$http.get('myfile.html')
.success(function (data, status, headers, config) {
return 'some async value';
});
return 'file not found'; // same value returned every time but $digest cycle still loops
}
Ich bin neu in Angular, also habe ich wahrscheinlich etwas Grundlegendes verpasst, aber kann mir bitte jemand erklären, was vor sich geht?
Plunker
Hier ist ein Plunker spielen http://plnkr.co/7BriYDbdVJvIoIigQcTU
Ja, ich denke das erklärt es wahrscheinlich, danke. Die getValueAsync-Methode in meinem Beispiel gibt jedoch immer denselben Wert zurück, sodass ich nicht erkennen kann, warum Angular es für weiterhin unbegrenzt aufrufen würde. –