我有一个Insert函数可以在数据库中插入数据。该函数由一个按钮(正常工作)调用,也可以通过一个倒计时调用该函数,当它变为0时。在第二种情况下,该函数将数据插入为空。
以下是我的代码:
插入功能:
$scope.EnviarRespuestas = function () {
$http.post(
"insert.php", {
'preg1': $scope.pregunta1,
'preg2': $scope.pregunta2,
'preg3': $scope.pregunta3,
'preg4': $scope.pregunta4,
'preg5': $scope.pregunta5,
'preg6': $scope.pregunta6,
'preg7': $scope.pregunta7,
'preg8': $scope.pregunta8,
'preg9': $scope.pregunta9,
'preg10': $scope.pregunta10,
'dni': $scope.dniaux,
'apNom': $scope.nombreaux,
'tiempo': $scope.tiempo
}
).then(function (data) {
console.log($scope.pregunta1);
$scope.pregunta1 = "";
$scope.pregunta2 = "";
$scope.pregunta3 = "";
$scope.pregunta4 = "";
$scope.pregunta5 = "";
$scope.pregunta6 = "";
$scope.pregunta7 = "";
$scope.pregunta8 = "";
$scope.pregunta9 = "";
$scope.pregunta10 = "";
$scope.apNom = "";
$scope.dni = "";
$scope.tiempo = "";
clearInterval(timer);
$('.button').removeClass('blue');
$('.ui.menu').find('.item').tab('change tab', 1);
});
}
和以下是倒计时为0时调用第一个函数的函数:
$scope.startTimer = function () {
$scope.segundos = 15;
$scope.minutos = 00;
timer = setInterval(function () {
$scope.segundos--;
if ($scope.segundos < 10) {
$scope.segundos = "0" + $scope.segundos
}
if ($scope.minutos == 0 && $scope.segundos == 0) {
clearInterval(timer);
$scope.calcularTiempo();
$scope.EnviarRespuestas();
}
$scope.$apply();
if ($scope.segundos <= 0) {
$scope.minutos--;
$scope.segundos = 05;
}
}, 1000);
}
答案 0 :(得分:1)
整个$scope.startTimer
函数似乎没必要,因为angularjs已经有一个$timeout
函数可以起到同样的作用;
$timeout(function() {
// what to call
}, 15000) // 15000 = 15 seconds
其次,如果您已经有一个有效的按钮,那么当计时器到期时,您可以在其上调用.click()
。
$timeout(function() {
angular.element('#buttonId').click();
}, 15000) // 15000 = 15 seconds