2015-06-19 31 views
2

如何触发按钮单击setTimeout或$超时。现在,即使我把它放在按钮点击函数中,它也会自动执行,它不会等待点击事件触发它。

$scope.btnClick = function() { 
     setTimeout(function() { 
      $scope.close(); 
     }, 1000) 
    } 
+1

从我的理解,你有一个按钮,如下所示:''我已经在按钮所在的控制器中获得了这个功能。这可能是不对的,你能否在问题中澄清一下? –

+0

你想在jquery的'onclick'事件被触发后调用这个函数吗? –

回答

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

2

使用$超时,而不是setTimeout和使用$范围。$适用()在 “$ scope.close()” 函数。

注意:如果您想查看UI中的更改,可以在函数中使用$ scope。$ apply()。使用console.log()不能证明它正确的话;)

相关问题