我正在創建一個客戶端並調用我的API,但它至少需要2秒才能響應,因此我希望該用戶無法單擊兩次註冊。在角度js中強制單擊
我將這個小提琴放入我的控制器中。
https://jsfiddle.net/zsp7m155/
但什麼情況是,第一個函數需要2秒鐘禁用按鈕之後,它能夠使他按鈕併發送請求給API。 我在這裏做錯了什麼?
代碼我我的控制器
CONTROLLER.JS
$scope.createClient = function() {
ClientService.createClient($scope.theClient).then(function (aCreateClientResponse) {
if(aCreateClientResponse[0] == $scope.RESPONSE_CODE.CM_SUCCESS) {
alert('success');
}
else if(aCreateClientResponse[0] == $scope.RESPONSE_CODE.CM_DOMAINNAME_ERROR) {
alert('Check your domain name');
}
else if(aCreateClientResponse[0] == $scope.RESPONSE_CODE.CM_INVALID_INPUT) {
alert('Invalid request');
}
else {
alert('Service is not available');
}
});
};
代碼我服務的
SERVICE.JS
App.factory('ClientService', function($http, API_URL, REQUEST_HEADER, RESPONSE_CODE) {
createClient: function(aClient) {
var myCreateClientRequest = {
"CreateClientRequest": {
"Header": {
"CMMHeader": {
"Id": uuid2.newuuid()
}
},
"Client": {
"OrganizationName": aClient.Name,
"OrganizationDomain": aClient.Domain,
},
}
};
//API Call
var promise = $http.post(API_URL.CREATE_CLIENT, myCreateClientRequest, REQUEST_HEADER).then(
function(aCreateClientResponse) { //Success Callback
return [aCreateClientResponse.data.CreateClientResponse.Result.ResponseCode,''];
},
function(aCreateClientResponse) { //Error Callback
return [aCreateClientResponse.status,''];
});
return promise;
},
});
HTML
<button id="register-btn" name="register-btn" class="btn btn-primary" ng-disabled="((Client.User.UserPassword !== Client.User.UserconfirmPassword) || CreateClientForm.domain.$invalid || CreateClientForm.username.$invalid || CreateClientForm.email.$invalid || CreateClientForm.password.$invalid || CreateClientForm.confirmpassword .$invalid || CreateClientForm.organizationname.$invalid)" single-click="createClient()">{{ running ? 'Please wait...' : 'Register' }}</button>
我已經使用他來驗證我的支票 <按鈕的ID
,並在控制器= 「寄存器BTN」 NAME = 「註冊-BTN」 class =「btn btn-primary」ng-disabled =「((Client.User.UserPassword!== Client.User.UserconfirmPassword)|| CreateClientForm.domain。$ invalid || CreateClientForm.username。$ invalid || CreateClientForm.email 。$ invalid || CreateClientForm.password。$ invalid || CreateClientForm.confirmpassword。$ invalid || CreateClientForm.organizationname。$ invalid)「single-click =」createClient()「> {{running? '請稍候...':'註冊'}} –
[防止/處理角度中的雙擊按鈕]可能的副本(https://stackoverflow.com/questions/18130808/preventing-dealing-with-double- button-clicks-in-angular) – tk120404