Я новичок в angular.js. Я смущен тем, как обрабатывать асинхронные события в контроллере.Как обращаться с асинхронным в контроллере 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>
Update:
Спасибо за все ваши ответы. Но я задаю вопрос. Как насчет функции setTimeout
является HTTP-запрос? Я знаю, что $http
может это сделать. Но что, если функция что-то обрабатывает файл и так далее? Я не исключаю, что у каждого асинхронного вызова есть услуга для меня. Нужно ли мне писать свой собственный, если доза не существует?
, но когда вы заполните форму, тогда вся страница перезагружается, и вы никогда не увидите изменений переменной. – Cherniv