angular.js は初めてです。コントローラーで非同期イベントを処理する方法について混乱しています。
たとえば、あるページに という名前のビューがありますcount
。ボタンをクリックしている間、コントローラーはカウントを 1 増やします。ただし、この増加は非同期です。私が望むのは、count
変更すると、ビューに通知され、その値が変更されることです。しかし、次のクリックを利用しても、ビューはその値を変更しません。
これは例えばコードです:
<!DOCTYPE html>
<html ng-app>
<head>
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.0.7/angular.min.js"></script>
</head>
<body>
<div ng-controller="Controller">
{{ count }}
<form ng-submit="delayInc()">
<input type="submit" value="Add" />
</form>
</div>
<script>
function Controller($scope) {
$scope.count = 0;
$scope.delayInc = function () {
setTimeout(function () {
$scope.count += 1;
}, 1000);
};
}
</script>
</body>
</html>
アップデート:
ご回答ありがとうございます。しかし、私は生成の質問をしています。setTimeout
関数は http リクエストでしょうか。私はこれができることを知って$http
います。しかし、関数がファイルなどを処理するものである場合はどうなるでしょうか? 私は、すべての非同期呼び出しにサービスがあることを除いてはありません。存在しない場合、自分で作成する必要がありますか?