ページをロードするとすぐに、Angular サービスでこのコードを実行しています。コントローラーの$scopeは、この抽出が属する関数に引数として渡されます。関数は$q promise です。
scope.req.rows
更新されたことをコントローラーに知らせる方法がわかりません。その直後に追加するscope.$apply()
と、ダイジェスト フェーズが実行されます。$qresolve
関数を使用すると、返され、ループ結果は返されなくなります。scope.$evalAsync()
効果がないように$timeout
見えます(少なくともタイムアウトを設定しない限り> 0)。についても同様ですscope.$watch
。
値が更新されたことをコントローラーに知らせるにはどうすればよいですか?
for (var page = 0; page < nbPages; page++) {
(function (pageNum) {
that.get(url,
where,
res.pageSize * page,
res.pageSize)
.then(function Success(data) {
$log.info('Result of page ' + pageNum + ' received');
for (row in data) {
scope.req.rows++;
}
}).catch(function chunkFail(err) {
reject(err);
});
})(page);