我是 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
可以做到这一点。但是如果函数是处理文件等等呢?除了每个异步调用之外,我没有为我提供服务。如果它不存在,我需要自己写一个吗?