簡単な式バインディングを介してコントローラーメソッドによって返された値を表示するAngularアプリケーションがあります。
<div>{{getValue()}}</div>
問題のメソッドが値を返すだけの場合、メソッドは 2 回呼び出されますが、これは非常に奇妙です。
$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を初めて使用するので、おそらくここで基本的なことを見逃していますが、何が起こっているのか説明してもらえますか?
プランカー
これはhttp://plnkr.co/7BriYDbdVJvIoIigQcTUで遊ぶプランカーです