Я построил очень просто слайдер с Угловое, как так:Очистить Угловая таймаут внутри функции
$scope.slider = {};
$scope.slider.pane = 1;
$scope.slider.auto = true;
var slider = function(){
$timeout(function(){
if ($scope.slider.pane === 4) $scope.slider.pane = 1;
else $scope.slider.pane ++;
slider();
}, 4000);
}
slider();
Функция слайдера создает цикл ожидания, чтобы изменить значение slider.pane
каждого 4s. В HTML у меня есть ссылка, которая при нажатии устанавливает значение slider.auto
в false
.
<a href="" ng-click="slider.auto=false">Stop slider</a>
При щелчке по нему необходимо остановить цикл таймаута. Это может быть в середине цикла в то время, поэтому мне нужно очистить таймаут, но он находится внутри функции, поэтому не уверен, как получить к ней доступ.
http://stackoverflow.com/a/21019006/3894168 может помочь. – Zee
@ Sourabh- спасибо, но это не работает. Переменная обещания не будет доступна вне моей функции слайдера. – Coop
Вы можете выполнить свое обещание как глобальную переменную для доступа к ней за пределами. – Zee