我有一個function
當某些條件得到滿足,處理點擊。連續執行功能?
場景:
我想,當點擊登錄按鈕只有在滿足特定條件時自動關閉模式。那個條件在$scope.empSignin()
之內。
所以我根據谷歌的一些消息,我創建了一個function
,當條件有效時將處理click
事件。
HTML
//$scope.closeModal function
<button id="closeModal" type="button" class="close" data-dismiss="modal" ng-click="closeModal()">×</button>
//$scope.empSignin function
<input type="button" value="Sign In" ng-click="empSignin(signinInfo)">
這是html
文件,其中包含一個button
是在js function
自動點擊。
file.js
$scope.closeModal = function(){
console.log('entered');
$timeout(function(){
var el = document.getElementById('closeModal');
angular.element(el).trigger('click');
}, 0);
}
$scope.empSignin = function(signinInfo){
var data = {
username : signinInfo.username,
password : signinInfo.password
}
$http.post('server/emp_signin.php', data).then(function(res){
window.alert(res.data.message);
$scope.isMessage = res.data.message;
if($scope.isMessage == 'Successfully Signed In'){
console.log('true');
$scope.closeModal();
} else { console.log('false'); }
});
}
這js file
包含function
,處理click事件。
據工作如我所料,但是當該事件發生了,在瀏覽器中console
有連續執行(爲我所知道的)。
我的問題是發生了什麼事那裏,這是爲什麼?我如何解決這個問題,因爲當我在taskmanager中查看時,它會佔用大量設備資源。
這裏是控制檯的截圖:
這不是如何角的作品。您不會在Angular中通過ID選擇元素。此外,爲什麼要選擇一個元素,然後模擬點擊它,而不是簡單地調用'closeModal()'函數? –
因爲你寫的setTimeout零代碼,這就是爲什麼 – Jinesh
@Jinesh,setTimeout的將只添加在執行的延遲,也不會設置要執行的代碼超過一次。 –