gpt4 book ai didi

javascript - Angular 一 : javascript timeout function

转载 作者:行者123 更新时间:2023-12-03 03:27:02 24 4
gpt4 key购买 nike

我正在尝试根据输入值调用函数。该场景将:如果 10 秒内没有人在该输入中添加某些内容(因此该值将为空),则禁用该输入。我想使用 ng-change 或类似的 Angular 方法而不是任何“键盘键”条件。

现在首先想到的是,当单击按钮并计数到 10 时,将计时器设置为 0。

angular.module('myApp', [])
.controller('myCtrl', ['$scope', function($scope) {
$scope.count = 10;
$scope.inpValue = '';

function myFunction() {
setTimeout(function() {
if ($scope.inpValue.length === 0 && $scope.count >= 10) {
alert("Execute function when if is true");
}
}, 1000);
};
myFunction();

}]);

<强> JSFIDDLE:

最佳答案

虽然问题陈述不明确,但这可能就是您所需要的。

  • 如果在输入框中未输入任何值,它将在 10 秒后禁用。
  • 如果该值发生更改,计时器将重置为默认值并重新运行。
  • Close on 10 按钮也会重置计时器,但一旦单击按钮就会禁用。仅当输入框的值发生变化时,它才会启用

angular.module('myApp', []).controller('myCtrl', ['$scope', '$timeout', function($scope, $timeout) {
$scope.count = 1;
$scope.inpValue = "";
$scope.disableInput = false;
$scope.disableBtn = false;

$scope.checkToDisable = function() {
console.log($scope.count);

$scope.customTimeout = $timeout(function() {
if ($scope.inpValue.length === 0 && $scope.count == 10) {
$scope.count = 0;
$scope.disableInput = true;
$scope.disableBtn = true;
$timeout.cancel($scope.customTimeout);
} else {
$scope.count++;
$scope.checkToDisable();
if ($scope.count > 10) {
$timeout.cancel($scope.customTimeout);
}
}
}, 1000);
};

$scope.resetTimer = function() {
$scope.count = 1;
$timeout.cancel($scope.customTimeout);
$scope.checkToDisable();
};

$scope.checkToDisable();

}]);
button {
border: none;
padding: 5px 2px;
border-radius: 4px;
box-shadow: inset 1px 1px 4px red;
}

button:active {
background: orange;
border: none;
}
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.6.4/angular.min.js"></script>

<body ng-app="myApp">
<div ng-controller="myCtrl">
<input type='text' ng-model="inpValue" ng-change="resetTimer(); disableBtn = false;" ng-disabled="disableInput" />
<button ng-click="resetTimer(); disableBtn = true;" ng-disabled="disableBtn">Close when it reaches 10</button>
</div>
</body>

关于javascript - Angular 一 : javascript timeout function,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46278891/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com