Community Tip - If community subscription notifications are filling up your inbox you can set up a daily digest and get all your notifications in a single email. X
Hi All,
I want to achieve such an effect through $interval: when I click button A, Call function GunTongstartRotate, the model starts to rotate continuously; when I click button B,Call function GunTongstopRotate, the model stops rotating. The following is the code I wrote.
$scope.GunTongRotate = function() {
$scope.app.params.QMJrx = $scope.app.params.QMJrx-5;
};
$scope.GunTongstartRotate = function() {
//store the interval promise
$scope.app.params.QMJrx=0;
intervalPromise = $interval($scope.GunTongRotate, 50, 0);
};
$scope.GunTongstopRotate = function() {
if(angular.isDefined(intervalPromise)){
$interval.cancel(intervalPromise);
$scope.app.params.QMJrx=0;
}
};
The problem is that when I click button A multiple times, the model will turn faster and faster, and clicking button B again will not stop the model from turning. How should I solve this problem?
Solved! Go to Solution.
Hi,
you can check if the model is already rotating like this:
var isRotating = 0;
$scope.GunTongRotate = function() {
$scope.app.params.QMJrx = $scope.app.params.QMJrx-5;
};
$scope.GunTongstartRotate = function() {
//store the interval promise
if(isRotating==0){
$scope.app.params.QMJrx=0;
intervalPromise = $interval($scope.GunTongRotate, 50, 0);
isRotating = 1;
}
};
$scope.GunTongstopRotate = function() {
if(angular.isDefined(intervalPromise)){
isRotating = 0;
$interval.cancel(intervalPromise);
$scope.app.params.QMJrx=0;
}
};
Hi,
you can check if the model is already rotating like this:
var isRotating = 0;
$scope.GunTongRotate = function() {
$scope.app.params.QMJrx = $scope.app.params.QMJrx-5;
};
$scope.GunTongstartRotate = function() {
//store the interval promise
if(isRotating==0){
$scope.app.params.QMJrx=0;
intervalPromise = $interval($scope.GunTongRotate, 50, 0);
isRotating = 1;
}
};
$scope.GunTongstopRotate = function() {
if(angular.isDefined(intervalPromise)){
isRotating = 0;
$interval.cancel(intervalPromise);
$scope.app.params.QMJrx=0;
}
};
Hi sebben,
Thank you for your reply! Your idea is very clever, but unfortunately, the problem still remains that when I click the start rotation button many times, the model still spins faster and faster, and clicking the Stop button doesn't work.
That's odd, it works for me. Did you copy and paste the code or did you edit your code?
Thanks ! I reviewed the code and found a spelling mistake. When I corrected the spelling mistake, the problem was solved!