From 17d6c3b58c79a9b9deeb06c26f2a7effa5267dbd Mon Sep 17 00:00:00 2001 From: Andy Joslin Date: Sat, 22 Jun 2013 12:05:21 -0400 Subject: [PATCH] fix(carousel): make slide 'active' binding optional --- src/carousel/carousel.js | 14 +++++++++++++- 1 file changed, 13 insertions(+), 1 deletion(-) diff --git a/src/carousel/carousel.js b/src/carousel/carousel.js index ffdd2b64e3..6519f1a2f1 100644 --- a/src/carousel/carousel.js +++ b/src/carousel/carousel.js @@ -189,9 +189,21 @@ angular.module('ui.bootstrap.carousel', ['ui.bootstrap.transition']) replace: true, templateUrl: 'template/carousel/slide.html', scope: { - active: '=' }, link: function (scope, element, attrs, carouselCtrl) { + //Set up optional 'active' = binding + scope.active = false; // default value + if (attrs.active) { + var getActive = $parse(attrs.active); + var setActive = getActive.assign; + scope.$parent.$watch(getActive, function updateActive(value) { + scope.active = !!value; + }); + scope.$watch(getActive, function(value) { + setActive(scope.$parent, !!value); + }); + } + carouselCtrl.addSlide(scope, element); //when the scope is destroyed then remove the slide from the current slides array scope.$on('$destroy', function() {