diff --git a/src/carousel/carousel.js b/src/carousel/carousel.js index 11a3a9045e..2221569be1 100644 --- a/src/carousel/carousel.js +++ b/src/carousel/carousel.js @@ -123,6 +123,15 @@ angular.module('ui.bootstrap.carousel', []) return $scope.active === slide.slide.index; }; + + $scope.isPrevDisabled = function() { + return $scope.active === 0 && $scope.noWrap(); + }; + + $scope.isNextDisabled = function() { + return $scope.active === slides.length - 1 && $scope.noWrap(); + }; + $scope.pause = function() { if (!$scope.noPause) { isPlaying = false; diff --git a/src/carousel/test/carousel.spec.js b/src/carousel/test/carousel.spec.js index 236b6b3cf1..e43ce5f6dd 100644 --- a/src/carousel/test/carousel.spec.js +++ b/src/carousel/test/carousel.spec.js @@ -163,18 +163,20 @@ describe('carousel', function() { expect(navPrev.length).toBe(0); }); - it('should not show prev button when slide index is 0 and noWrap is truthy', function() { + it('should disable prev button when slide index is 0 and noWrap is truthy', function() { scope.$apply(); var $scope = elm.isolateScope(); $scope.noWrap = function() {return true;}; + + $scope.isPrevDisabled(); scope.$apply(); var navPrev = elm.find('a.left'); - expect(navPrev.hasClass('ng-hide')).toBe(true); + expect(navPrev.hasClass('disabled')).toBe(true); }); - it('should not show next button when last slide is active and noWrap is truthy', function() { + it('should disable next button when last slide is active and noWrap is truthy', function() { scope.slides = [ {content: 'one', index: 0}, {content: 'two', index: 1} @@ -184,12 +186,13 @@ describe('carousel', function() { var $scope = elm.isolateScope(); $scope.noWrap = function() {return true;}; - $scope.next(); + + $scope.isNextDisabled(); scope.$apply(); var navNext = elm.find('a.right'); - expect(navNext.hasClass('ng-hide')).toBe(true); + expect(navNext.hasClass('disabled')).toBe(true); }); it('should show navigation when there are 3 slides', function () { diff --git a/template/carousel/carousel.html b/template/carousel/carousel.html index 5dd4509145..5e50c4593c 100644 --- a/template/carousel/carousel.html +++ b/template/carousel/carousel.html @@ -1,10 +1,10 @@