mam kątową aplikacji, która wyświetla wartość zwracana przez metodę kontrolera za pomocą prostego wyrażenia Oprawa:Nieskończona pętla z Kątowymi wyrażenia wiążącego
<div>{{getValue()}}</div>
Jeśli omawiana metoda po prostu zwraca wartość, metoda nazywa dwa razy, i to jest dosyć dziwne:
$scope.getValue = function(){
return 'some value';
}
Ale jeśli metoda ma pewne asynchroniczną pracę takich jak dostaję plik z serwera, kod przechodzi w nieskończonej pętli:
$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
}
Jestem nowy w Angular, więc pewnie przegapiłem coś podstawowego, ale czy ktoś może wyjaśnić, co się dzieje?
Plunker
Oto plunker grać z http://plnkr.co/7BriYDbdVJvIoIigQcTU
Tak, myślę, że prawdopodobnie to wyjaśnia, dzięki. Jednak metoda getValueAsync w moim przykładzie zawsze zwraca tę samą wartość, więc nie widzę powodu, dla którego Angular uznałby za stosowne kontynuowanie wywoływania go w nieskończoność. –