2016-11-07 26 views
1

這可能是你數學大師的小菜一碟。 prevSlide可以追溯到罰款3-2-1-3-2 ...等等。無論輸入點是什麼。但nexSlide開始1-2-3,然後它只是2-3-2-3 ...我敢肯定,這是我的數學角度next和prev導航數學邏輯

$scope.currentIndex = 0; 
$scope.setCurrentSlideIndex = function (index) { 
    $scope.currentIndex = index; 
}; 
$scope.isCurrentSlideIndex = function (index) { 
    return $scope.currentIndex === index; 
}; 
$scope.prevSlide = function() { 
    $scope.currentIndex = ($scope.currentIndex > 0) ? --$scope.currentIndex : $scope.slides.length - 1; 
}; 
$scope.nextSlide = function() { 
    $scope.currentIndex = ($scope.currentIndex < $scope.slides.length -1) ? ++$scope.currentIndex : 1; 
}; 

幫助!

回答

1
$scope.nextSlide = function() { 
    $scope.currentIndex = ($scope.currentIndex < $scope.slides.length -1) ? ++$scope.currentIndex : 0; 
}; 

你只需要改變10這行的末尾。索引1,因爲你現在是第二張幻燈片。

Slide #: 1 -- 2 -- 3 
Index #: 0 -- 1 -- 2 
+0

金色!非常感謝! – LOTUSMS

1

您必須更改以符合您的上下文,但下面的函數previous()next()中的邏輯可能會有所幫助。

var numSlides = 3; 

function previous(current){ 
    current--; 
    return current >= 0 ? current : numSlides; 
} 

function next(current){ 
    current++; 
    return current <= numSlides ? current : 0; 
} 
+2

您可以隨時對任何時鐘算術使用模(%)運算符。 'return(++ current)%numSlides' – soote

+1

這是純JavaScript的一個很好的解決方案,但其他答案幫助我更好,因爲它仍然是有角度的,並且不需要太多工作就可以實現。此外,我無法硬編碼幻燈片的數量。如果用戶向組件添加3張以上的幻燈片,它必須保持動態。但我做了你的答案+1。謝謝! – LOTUSMS