2015-06-19 69 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()不能證明它正確的話;)

相關問題