У меня есть угловое приложение, которое отображает значение, возвращаемое методом контроллера с помощью простого выражения связывания:Бесконечный цикл с угловым выражением связывания
<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
Вот plunker играть с http://plnkr.co/7BriYDbdVJvIoIigQcTU
Да, я думаю, это, вероятно, объясняет это, спасибо. Однако метод getValueAsync в моем примере всегда возвращает одно и то же значение, поэтому я не могу понять, почему Angular сочтет нужным продолжать его на неопределенное время. –