如何使用AngularJS延迟启用按钮?

Ric*_*rth 3 javascript angularjs

我正在使用该ng-disabled指令来控制何时可以单击页面上的按钮.是否可以通过计时器控制它?我希望按钮被移除直到5秒钟过去.我的HTML目前是:

<div ng-controller="ResetController">
    <button ng-click="reset()">Reset</button>
</div>
Run Code Online (Sandbox Code Playgroud)

Luk*_*itz 12

你可以使用$timeout:

$timeout(function() {
   $scope.buttonEnabled = true;
}, 5000);
Run Code Online (Sandbox Code Playgroud)

在你的HTML中:

<button ng-click="reset()" ng-disabled="!buttonEnabled">Reset</button>
Run Code Online (Sandbox Code Playgroud)

另外不要忘记注入$timeout您的控制器.像任何其他角度服务($http例如).


Kie*_*iee 7

ng-enabled不是核心,而是ng-disabled基于true或false进行求值,因此只需在所需的时间后使用超时为变量赋值,以便相应地启用.

HTML:

<button ng-disabled="isDisabled">click me after 3 seconds</button>
Run Code Online (Sandbox Code Playgroud)

控制器:

function($scope, $timeout) {
  $scope.isDisabled= true;
  $timeout(function(){
    $scope.isDisabled= false;
  }, 3000)
}
Run Code Online (Sandbox Code Playgroud)