如何在按钮单击时触发setTimeout或$ timeout。现在,即使我把它放在按钮点击功能中,它也会自行执行,而不是等待点击事件触发它。
$scope.btnClick = function () {
setTimeout(function () {
$scope.close();
}, 1000)
}
答案 0 :(得分:2)
使用$ timeout而不是setTimeout,并在“$ scope.close()”函数中使用$ scope。$ apply()。
注意:如果要查看UI中的更改,可以在函数中使用$ scope。$ apply()。使用console.log()并不能正确证明它;)
答案 1 :(得分:0)
angular.module('app',[]).controller('mainCtrl',['$scope',function($scope){
$scope.btnClick = function () {
setTimeout(function () {
$scope.close();
}, 1000)
};
$scope.close = function(){
console.log("done");
};
}]);
<!DOCTYPE html>
<html ng-app="app">
<head>
<link rel="stylesheet" href="style.css">
<script src="https://code.angularjs.org/1.4.0/angular.js"></script>
<script src="script.js"></script>
</head>
<body ng-controller="mainCtrl">
<button ng-click="btnClick()">Do</button>
</body>
</html>
这是一个超时工作的片段。 这是plnkr http://plnkr.co/edit/7ZS5TTnCb50nbgBuXqj1?p=preview