У меня есть приложение angular, которое отображает значение, возвращаемое методом контроллера, посредством простого привязки выражения:
<div>{{getValue()}}</div>
Если рассматриваемый метод просто возвращает значение, метод вызывается дважды, и это довольно странно:
$scope.getValue = function(){
return 'some value';
}
Но если метод выполняет некоторую асинхронную работу, такую как получение файла с сервера, код переходит в бесконечный цикл:
$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
}
Я новичок в angular, поэтому, возможно, пропустил что-то основное здесь, но может кто-нибудь объяснить, что происходит?
Plunker
Здесь плукер, чтобы играть с http://plnkr.co/7BriYDbdVJvIoIigQcTU