From 48e7f219afdddf7b35850db3acc582807d2d8926 Mon Sep 17 00:00:00 2001 From: abrbhat Date: Sat, 26 Dec 2015 16:42:24 +0530 Subject: [PATCH 1/9] added currentSlide to scope models --- dist/angular-swiper.js | 2 +- src/angular-swiper.js | 11 +++++++++-- 2 files changed, 10 insertions(+), 3 deletions(-) diff --git a/dist/angular-swiper.js b/dist/angular-swiper.js index 9d086c4..9e95566 100644 --- a/dist/angular-swiper.js +++ b/dist/angular-swiper.js @@ -1 +1 @@ -!function(e,i,r){"use strict";function t(){for(var e=[],i="0123456789abcdef",r=0;36>r;r++)e[r]=i.substr(Math.floor(16*Math.random()),1);e[14]="4",e[19]=i.substr(3&e[19]|8,1),e[8]=e[13]=e[18]=e[23]="-";var t=e.join("");return t}function a(){return{restrict:"E",transclude:!0,scope:{onReady:"&",slidesPerView:"=",slidesPerColumn:"=",spaceBetween:"=",parallax:"=",parallaxTransition:"@",paginationIsActive:"=",paginationClickable:"=",showNavButtons:"=",showScrollBar:"=",loop:"=",autoplay:"=",initialSlide:"=",containerCls:"@",wrapperCls:"@",paginationCls:"@",slideCls:"@",direction:"@",swiper:"=",overrideParameters:"="},controller:["$scope","$element","$timeout",function(e,r,a){var n=t();e.swiper_uuid=n;var s={slidesPerView:e.slidesPerView||1,slidesPerColumn:e.slidesPerColumn||1,spaceBetween:e.spaceBetween||0,direction:e.direction||"horizontal",loop:e.loop||!1,initialSlide:e.initialSlide||0,showNavButtons:!1};i.isUndefined(e.autoplay)||"number"!=typeof e.autoplay||(s=i.extend({},s,{autoplay:e.autoplay})),e.paginationIsActive===!0&&(s=i.extend({},s,{paginationClickable:e.paginationClickable||!0,pagination:"#paginator-"+e.swiper_uuid})),e.showNavButtons===!0&&(s.nextButton="#nextButton-"+e.swiper_uuid,s.prevButton="#prevButton-"+e.swiper_uuid),e.showScrollBar===!0&&(s.scrollbar="#scrollBar-"+e.swiper_uuid),e.overrideParameters&&(s=i.extend({},s,e.overrideParameters)),a(function(){var t=null;i.isObject(e.swiper)?(e.swiper=new Swiper(r[0].firstChild,s),t=e.swiper):t=new Swiper(r[0].firstChild,s),i.isUndefined(e.onReady)||e.onReady({swiper:t})})}],link:function(e,r){var t=e.swiper_uuid,a="paginator-"+t,n="prevButton-"+t,s="nextButton-"+t,o="scrollBar-"+t,l=r[0];i.element(l.querySelector(".swiper-pagination")).attr("id",a),i.element(l.querySelector(".swiper-button-next")).attr("id",s),i.element(l.querySelector(".swiper-button-prev")).attr("id",n),i.element(r[0].querySelector(".swiper-scrollbar")).attr("id",o)},template:'
'}}function n(){return{restrict:"E",require:"^ksSwiperContainer",transclude:!0,template:'
',replace:!0}}i.module("ksSwiper",[]).directive("ksSwiperContainer",a).directive("ksSwiperSlide",n)}(window,angular,void 0); \ No newline at end of file +!function(e,i,r){"use strict";function t(){for(var e=[],i="0123456789abcdef",r=0;36>r;r++)e[r]=i.substr(Math.floor(16*Math.random()),1);e[14]="4",e[19]=i.substr(3&e[19]|8,1),e[8]=e[13]=e[18]=e[23]="-";var t=e.join("");return t}function n(){return{restrict:"E",transclude:!0,scope:{onReady:"&",slidesPerView:"=",slidesPerColumn:"=",spaceBetween:"=",parallax:"=",parallaxTransition:"@",paginationIsActive:"=",paginationClickable:"=",showNavButtons:"=",showScrollBar:"=",loop:"=",autoplay:"=",initialSlide:"=",containerCls:"@",wrapperCls:"@",paginationCls:"@",slideCls:"@",direction:"@",swiper:"=",overrideParameters:"=",currentSlide:"="},controller:["$scope","$element","$timeout",function(e,r,n){var a=t();e.swiper_uuid=a;var s={slidesPerView:e.slidesPerView||1,slidesPerColumn:e.slidesPerColumn||1,spaceBetween:e.spaceBetween||0,direction:e.direction||"horizontal",loop:e.loop||!1,initialSlide:e.initialSlide||0,showNavButtons:!1};i.isUndefined(e.autoplay)||"number"!=typeof e.autoplay||(s=i.extend({},s,{autoplay:e.autoplay})),e.paginationIsActive===!0&&(s=i.extend({},s,{paginationClickable:e.paginationClickable||!0,pagination:"#paginator-"+e.swiper_uuid})),e.showNavButtons===!0&&(s.nextButton="#nextButton-"+e.swiper_uuid,s.prevButton="#prevButton-"+e.swiper_uuid),e.showScrollBar===!0&&(s.scrollbar="#scrollBar-"+e.swiper_uuid),e.overrideParameters&&(s=i.extend({},s,e.overrideParameters)),n(function(){var t=null;i.isObject(e.swiper)?(e.swiper=new Swiper(r[0].firstChild,s),t=e.swiper):t=new Swiper(r[0].firstChild,s),i.isUndefined(e.currentSlide)||t.on("transitionEnd",function(){e.currentSlide=Math.abs(t.progress)}),i.isUndefined(e.onReady)||e.onReady({swiper:t})})}],link:function(e,r){var t=e.swiper_uuid,n="paginator-"+t,a="prevButton-"+t,s="nextButton-"+t,o="scrollBar-"+t,l=r[0];i.element(l.querySelector(".swiper-pagination")).attr("id",n),i.element(l.querySelector(".swiper-button-next")).attr("id",s),i.element(l.querySelector(".swiper-button-prev")).attr("id",a),i.element(r[0].querySelector(".swiper-scrollbar")).attr("id",o)},template:'
'}}function a(){return{restrict:"E",require:"^ksSwiperContainer",transclude:!0,template:'
',replace:!0}}i.module("ksSwiper",[]).directive("ksSwiperContainer",n).directive("ksSwiperSlide",a)}(window,angular,void 0); \ No newline at end of file diff --git a/src/angular-swiper.js b/src/angular-swiper.js index e57492e..1f242ff 100644 --- a/src/angular-swiper.js +++ b/src/angular-swiper.js @@ -46,7 +46,8 @@ slideCls: '@', direction: '@', swiper: '=', - overrideParameters: '=' + overrideParameters: '=', + currentSlide: '=' }, controller: function($scope, $element, $timeout) { var uuid = createUUID(); @@ -100,6 +101,12 @@ swiper = new Swiper($element[0].firstChild, params); } + if(!angular.isUndefined($scope.currentSlide)){ + swiper.on('transitionEnd', function(){ + $scope.currentSlide = Math.abs(swiper.progress); + }); + } + //If specified, calls this function when the swiper object is available if (!angular.isUndefined($scope.onReady)) { $scope.onReady({ @@ -155,4 +162,4 @@ }; } -})(window, angular, undefined); \ No newline at end of file +})(window, angular, undefined); From cb1ab3acb9c5da8cfd4047ed0e48b41309d098f1 Mon Sep 17 00:00:00 2001 From: abrbhat Date: Sat, 26 Dec 2015 16:52:21 +0530 Subject: [PATCH 2/9] bumped version to 0.3.3 --- bower.json | 4 ++-- package.js | 4 ++-- package.json | 4 ++-- 3 files changed, 6 insertions(+), 6 deletions(-) diff --git a/bower.json b/bower.json index 0542c6f..a16013c 100644 --- a/bower.json +++ b/bower.json @@ -1,6 +1,6 @@ { "name": "angular-swiper", - "version": "0.3.2", + "version": "0.3.3", "homepage": "https://github.com/ksachdeva/angular-swiper", "authors": [ "Kapil Sachdeva " @@ -23,4 +23,4 @@ "swiper": "~3.0.5", "angular": ">=1.3" } -} \ No newline at end of file +} diff --git a/package.js b/package.js index 9211016..1e038ec 100644 --- a/package.js +++ b/package.js @@ -1,6 +1,6 @@ var packageName = 'aaronroberson:angular-swiper'; var where = 'client'; -var version = '0.3.2'; +var version = '0.3.3'; var summary = 'Angular directive for iDangero.us Swiper re-packaged for Meteor.'; var gitLink = 'https://github.com/aaronroberson/angular-swiper'; var documentationFile = 'README.md'; @@ -21,4 +21,4 @@ Package.onUse(function(api) { api.use('swiper:swiper@3.0.5', where); api.addFiles('dist/angular-swiper.js', where); -}); \ No newline at end of file +}); diff --git a/package.json b/package.json index 4c5e8c1..5f65b1a 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "angular-swiper", - "version": "0.3.2", + "version": "0.3.3", "description": "Angular directive for nolimits4web/swiper", "main": "dist/angular-swiper.js", "scripts": { @@ -26,4 +26,4 @@ "gulp-uglify": "^1.1.0", "gulp-webserver": "^0.9.0" } -} \ No newline at end of file +} From 6f40023d1c1fd33470c57f579e437d25500a21c6 Mon Sep 17 00:00:00 2001 From: abrbhat Date: Sat, 26 Dec 2015 17:37:41 +0530 Subject: [PATCH 3/9] Swiper can be controlled by changing currentSlide --- dist/angular-swiper.js | 2 +- src/angular-swiper.js | 6 ++++++ 2 files changed, 7 insertions(+), 1 deletion(-) diff --git a/dist/angular-swiper.js b/dist/angular-swiper.js index 9e95566..db32988 100644 --- a/dist/angular-swiper.js +++ b/dist/angular-swiper.js @@ -1 +1 @@ -!function(e,i,r){"use strict";function t(){for(var e=[],i="0123456789abcdef",r=0;36>r;r++)e[r]=i.substr(Math.floor(16*Math.random()),1);e[14]="4",e[19]=i.substr(3&e[19]|8,1),e[8]=e[13]=e[18]=e[23]="-";var t=e.join("");return t}function n(){return{restrict:"E",transclude:!0,scope:{onReady:"&",slidesPerView:"=",slidesPerColumn:"=",spaceBetween:"=",parallax:"=",parallaxTransition:"@",paginationIsActive:"=",paginationClickable:"=",showNavButtons:"=",showScrollBar:"=",loop:"=",autoplay:"=",initialSlide:"=",containerCls:"@",wrapperCls:"@",paginationCls:"@",slideCls:"@",direction:"@",swiper:"=",overrideParameters:"=",currentSlide:"="},controller:["$scope","$element","$timeout",function(e,r,n){var a=t();e.swiper_uuid=a;var s={slidesPerView:e.slidesPerView||1,slidesPerColumn:e.slidesPerColumn||1,spaceBetween:e.spaceBetween||0,direction:e.direction||"horizontal",loop:e.loop||!1,initialSlide:e.initialSlide||0,showNavButtons:!1};i.isUndefined(e.autoplay)||"number"!=typeof e.autoplay||(s=i.extend({},s,{autoplay:e.autoplay})),e.paginationIsActive===!0&&(s=i.extend({},s,{paginationClickable:e.paginationClickable||!0,pagination:"#paginator-"+e.swiper_uuid})),e.showNavButtons===!0&&(s.nextButton="#nextButton-"+e.swiper_uuid,s.prevButton="#prevButton-"+e.swiper_uuid),e.showScrollBar===!0&&(s.scrollbar="#scrollBar-"+e.swiper_uuid),e.overrideParameters&&(s=i.extend({},s,e.overrideParameters)),n(function(){var t=null;i.isObject(e.swiper)?(e.swiper=new Swiper(r[0].firstChild,s),t=e.swiper):t=new Swiper(r[0].firstChild,s),i.isUndefined(e.currentSlide)||t.on("transitionEnd",function(){e.currentSlide=Math.abs(t.progress)}),i.isUndefined(e.onReady)||e.onReady({swiper:t})})}],link:function(e,r){var t=e.swiper_uuid,n="paginator-"+t,a="prevButton-"+t,s="nextButton-"+t,o="scrollBar-"+t,l=r[0];i.element(l.querySelector(".swiper-pagination")).attr("id",n),i.element(l.querySelector(".swiper-button-next")).attr("id",s),i.element(l.querySelector(".swiper-button-prev")).attr("id",a),i.element(r[0].querySelector(".swiper-scrollbar")).attr("id",o)},template:'
'}}function a(){return{restrict:"E",require:"^ksSwiperContainer",transclude:!0,template:'
',replace:!0}}i.module("ksSwiper",[]).directive("ksSwiperContainer",n).directive("ksSwiperSlide",a)}(window,angular,void 0); \ No newline at end of file +!function(e,i,r){"use strict";function t(){for(var e=[],i="0123456789abcdef",r=0;36>r;r++)e[r]=i.substr(Math.floor(16*Math.random()),1);e[14]="4",e[19]=i.substr(3&e[19]|8,1),e[8]=e[13]=e[18]=e[23]="-";var t=e.join("");return t}function n(){return{restrict:"E",transclude:!0,scope:{onReady:"&",slidesPerView:"=",slidesPerColumn:"=",spaceBetween:"=",parallax:"=",parallaxTransition:"@",paginationIsActive:"=",paginationClickable:"=",showNavButtons:"=",showScrollBar:"=",loop:"=",autoplay:"=",initialSlide:"=",containerCls:"@",wrapperCls:"@",paginationCls:"@",slideCls:"@",direction:"@",swiper:"=",overrideParameters:"=",currentSlide:"="},controller:["$scope","$element","$timeout",function(e,r,n){var a=t();e.swiper_uuid=a;var s={slidesPerView:e.slidesPerView||1,slidesPerColumn:e.slidesPerColumn||1,spaceBetween:e.spaceBetween||0,direction:e.direction||"horizontal",loop:e.loop||!1,initialSlide:e.initialSlide||0,showNavButtons:!1};i.isUndefined(e.autoplay)||"number"!=typeof e.autoplay||(s=i.extend({},s,{autoplay:e.autoplay})),e.paginationIsActive===!0&&(s=i.extend({},s,{paginationClickable:e.paginationClickable||!0,pagination:"#paginator-"+e.swiper_uuid})),e.showNavButtons===!0&&(s.nextButton="#nextButton-"+e.swiper_uuid,s.prevButton="#prevButton-"+e.swiper_uuid),e.showScrollBar===!0&&(s.scrollbar="#scrollBar-"+e.swiper_uuid),e.overrideParameters&&(s=i.extend({},s,e.overrideParameters)),n(function(){var t=null;i.isObject(e.swiper)?(e.swiper=new Swiper(r[0].firstChild,s),t=e.swiper):t=new Swiper(r[0].firstChild,s),i.isUndefined(e.currentSlide)||t.on("transitionEnd",function(){e.currentSlide=Math.abs(t.progress)}),e.$watch("currentSlide",function(e,r){i.isUndefined(e)||e==r||t.slideTo(e)},!0),i.isUndefined(e.onReady)||e.onReady({swiper:t})})}],link:function(e,r){var t=e.swiper_uuid,n="paginator-"+t,a="prevButton-"+t,s="nextButton-"+t,o="scrollBar-"+t,l=r[0];i.element(l.querySelector(".swiper-pagination")).attr("id",n),i.element(l.querySelector(".swiper-button-next")).attr("id",s),i.element(l.querySelector(".swiper-button-prev")).attr("id",a),i.element(r[0].querySelector(".swiper-scrollbar")).attr("id",o)},template:'
'}}function a(){return{restrict:"E",require:"^ksSwiperContainer",transclude:!0,template:'
',replace:!0}}i.module("ksSwiper",[]).directive("ksSwiperContainer",n).directive("ksSwiperSlide",a)}(window,angular,void 0); \ No newline at end of file diff --git a/src/angular-swiper.js b/src/angular-swiper.js index 1f242ff..4968726 100644 --- a/src/angular-swiper.js +++ b/src/angular-swiper.js @@ -107,6 +107,12 @@ }); } + $scope.$watch('currentSlide', function(newValue, oldValue){ + if ((!angular.isUndefined(newValue)) && (newValue != oldValue)){ + swiper.slideTo(newValue); + } + }, true); + //If specified, calls this function when the swiper object is available if (!angular.isUndefined($scope.onReady)) { $scope.onReady({ From 942f293dd258711197cf21a23af85d2e5d03f7a1 Mon Sep 17 00:00:00 2001 From: abrbhat Date: Sat, 26 Dec 2015 17:50:33 +0530 Subject: [PATCH 4/9] No need for deep watching --- dist/angular-swiper.js | 2 +- src/angular-swiper.js | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/dist/angular-swiper.js b/dist/angular-swiper.js index db32988..d02d818 100644 --- a/dist/angular-swiper.js +++ b/dist/angular-swiper.js @@ -1 +1 @@ -!function(e,i,r){"use strict";function t(){for(var e=[],i="0123456789abcdef",r=0;36>r;r++)e[r]=i.substr(Math.floor(16*Math.random()),1);e[14]="4",e[19]=i.substr(3&e[19]|8,1),e[8]=e[13]=e[18]=e[23]="-";var t=e.join("");return t}function n(){return{restrict:"E",transclude:!0,scope:{onReady:"&",slidesPerView:"=",slidesPerColumn:"=",spaceBetween:"=",parallax:"=",parallaxTransition:"@",paginationIsActive:"=",paginationClickable:"=",showNavButtons:"=",showScrollBar:"=",loop:"=",autoplay:"=",initialSlide:"=",containerCls:"@",wrapperCls:"@",paginationCls:"@",slideCls:"@",direction:"@",swiper:"=",overrideParameters:"=",currentSlide:"="},controller:["$scope","$element","$timeout",function(e,r,n){var a=t();e.swiper_uuid=a;var s={slidesPerView:e.slidesPerView||1,slidesPerColumn:e.slidesPerColumn||1,spaceBetween:e.spaceBetween||0,direction:e.direction||"horizontal",loop:e.loop||!1,initialSlide:e.initialSlide||0,showNavButtons:!1};i.isUndefined(e.autoplay)||"number"!=typeof e.autoplay||(s=i.extend({},s,{autoplay:e.autoplay})),e.paginationIsActive===!0&&(s=i.extend({},s,{paginationClickable:e.paginationClickable||!0,pagination:"#paginator-"+e.swiper_uuid})),e.showNavButtons===!0&&(s.nextButton="#nextButton-"+e.swiper_uuid,s.prevButton="#prevButton-"+e.swiper_uuid),e.showScrollBar===!0&&(s.scrollbar="#scrollBar-"+e.swiper_uuid),e.overrideParameters&&(s=i.extend({},s,e.overrideParameters)),n(function(){var t=null;i.isObject(e.swiper)?(e.swiper=new Swiper(r[0].firstChild,s),t=e.swiper):t=new Swiper(r[0].firstChild,s),i.isUndefined(e.currentSlide)||t.on("transitionEnd",function(){e.currentSlide=Math.abs(t.progress)}),e.$watch("currentSlide",function(e,r){i.isUndefined(e)||e==r||t.slideTo(e)},!0),i.isUndefined(e.onReady)||e.onReady({swiper:t})})}],link:function(e,r){var t=e.swiper_uuid,n="paginator-"+t,a="prevButton-"+t,s="nextButton-"+t,o="scrollBar-"+t,l=r[0];i.element(l.querySelector(".swiper-pagination")).attr("id",n),i.element(l.querySelector(".swiper-button-next")).attr("id",s),i.element(l.querySelector(".swiper-button-prev")).attr("id",a),i.element(r[0].querySelector(".swiper-scrollbar")).attr("id",o)},template:'
'}}function a(){return{restrict:"E",require:"^ksSwiperContainer",transclude:!0,template:'
',replace:!0}}i.module("ksSwiper",[]).directive("ksSwiperContainer",n).directive("ksSwiperSlide",a)}(window,angular,void 0); \ No newline at end of file +!function(e,i,r){"use strict";function t(){for(var e=[],i="0123456789abcdef",r=0;36>r;r++)e[r]=i.substr(Math.floor(16*Math.random()),1);e[14]="4",e[19]=i.substr(3&e[19]|8,1),e[8]=e[13]=e[18]=e[23]="-";var t=e.join("");return t}function n(){return{restrict:"E",transclude:!0,scope:{onReady:"&",slidesPerView:"=",slidesPerColumn:"=",spaceBetween:"=",parallax:"=",parallaxTransition:"@",paginationIsActive:"=",paginationClickable:"=",showNavButtons:"=",showScrollBar:"=",loop:"=",autoplay:"=",initialSlide:"=",containerCls:"@",wrapperCls:"@",paginationCls:"@",slideCls:"@",direction:"@",swiper:"=",overrideParameters:"=",currentSlide:"="},controller:["$scope","$element","$timeout",function(e,r,n){var a=t();e.swiper_uuid=a;var s={slidesPerView:e.slidesPerView||1,slidesPerColumn:e.slidesPerColumn||1,spaceBetween:e.spaceBetween||0,direction:e.direction||"horizontal",loop:e.loop||!1,initialSlide:e.initialSlide||0,showNavButtons:!1};i.isUndefined(e.autoplay)||"number"!=typeof e.autoplay||(s=i.extend({},s,{autoplay:e.autoplay})),e.paginationIsActive===!0&&(s=i.extend({},s,{paginationClickable:e.paginationClickable||!0,pagination:"#paginator-"+e.swiper_uuid})),e.showNavButtons===!0&&(s.nextButton="#nextButton-"+e.swiper_uuid,s.prevButton="#prevButton-"+e.swiper_uuid),e.showScrollBar===!0&&(s.scrollbar="#scrollBar-"+e.swiper_uuid),e.overrideParameters&&(s=i.extend({},s,e.overrideParameters)),n(function(){var t=null;i.isObject(e.swiper)?(e.swiper=new Swiper(r[0].firstChild,s),t=e.swiper):t=new Swiper(r[0].firstChild,s),i.isUndefined(e.currentSlide)||t.on("transitionEnd",function(){e.currentSlide=Math.abs(t.progress)}),e.$watch("currentSlide",function(e,r){i.isUndefined(e)||e==r||t.slideTo(e)}),i.isUndefined(e.onReady)||e.onReady({swiper:t})})}],link:function(e,r){var t=e.swiper_uuid,n="paginator-"+t,a="prevButton-"+t,s="nextButton-"+t,o="scrollBar-"+t,l=r[0];i.element(l.querySelector(".swiper-pagination")).attr("id",n),i.element(l.querySelector(".swiper-button-next")).attr("id",s),i.element(l.querySelector(".swiper-button-prev")).attr("id",a),i.element(r[0].querySelector(".swiper-scrollbar")).attr("id",o)},template:'
'}}function a(){return{restrict:"E",require:"^ksSwiperContainer",transclude:!0,template:'
',replace:!0}}i.module("ksSwiper",[]).directive("ksSwiperContainer",n).directive("ksSwiperSlide",a)}(window,angular,void 0); \ No newline at end of file diff --git a/src/angular-swiper.js b/src/angular-swiper.js index 4968726..30c0844 100644 --- a/src/angular-swiper.js +++ b/src/angular-swiper.js @@ -111,7 +111,7 @@ if ((!angular.isUndefined(newValue)) && (newValue != oldValue)){ swiper.slideTo(newValue); } - }, true); + }); //If specified, calls this function when the swiper object is available if (!angular.isUndefined($scope.onReady)) { From effa2d715515bf483872adc893751fd43b87cc8c Mon Sep 17 00:00:00 2001 From: abrbhat Date: Sat, 26 Dec 2015 19:37:58 +0530 Subject: [PATCH 5/9] currentSlide update wrapped in --- dist/angular-swiper.js | 2 +- src/angular-swiper.js | 4 +++- 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/dist/angular-swiper.js b/dist/angular-swiper.js index d02d818..fa04672 100644 --- a/dist/angular-swiper.js +++ b/dist/angular-swiper.js @@ -1 +1 @@ -!function(e,i,r){"use strict";function t(){for(var e=[],i="0123456789abcdef",r=0;36>r;r++)e[r]=i.substr(Math.floor(16*Math.random()),1);e[14]="4",e[19]=i.substr(3&e[19]|8,1),e[8]=e[13]=e[18]=e[23]="-";var t=e.join("");return t}function n(){return{restrict:"E",transclude:!0,scope:{onReady:"&",slidesPerView:"=",slidesPerColumn:"=",spaceBetween:"=",parallax:"=",parallaxTransition:"@",paginationIsActive:"=",paginationClickable:"=",showNavButtons:"=",showScrollBar:"=",loop:"=",autoplay:"=",initialSlide:"=",containerCls:"@",wrapperCls:"@",paginationCls:"@",slideCls:"@",direction:"@",swiper:"=",overrideParameters:"=",currentSlide:"="},controller:["$scope","$element","$timeout",function(e,r,n){var a=t();e.swiper_uuid=a;var s={slidesPerView:e.slidesPerView||1,slidesPerColumn:e.slidesPerColumn||1,spaceBetween:e.spaceBetween||0,direction:e.direction||"horizontal",loop:e.loop||!1,initialSlide:e.initialSlide||0,showNavButtons:!1};i.isUndefined(e.autoplay)||"number"!=typeof e.autoplay||(s=i.extend({},s,{autoplay:e.autoplay})),e.paginationIsActive===!0&&(s=i.extend({},s,{paginationClickable:e.paginationClickable||!0,pagination:"#paginator-"+e.swiper_uuid})),e.showNavButtons===!0&&(s.nextButton="#nextButton-"+e.swiper_uuid,s.prevButton="#prevButton-"+e.swiper_uuid),e.showScrollBar===!0&&(s.scrollbar="#scrollBar-"+e.swiper_uuid),e.overrideParameters&&(s=i.extend({},s,e.overrideParameters)),n(function(){var t=null;i.isObject(e.swiper)?(e.swiper=new Swiper(r[0].firstChild,s),t=e.swiper):t=new Swiper(r[0].firstChild,s),i.isUndefined(e.currentSlide)||t.on("transitionEnd",function(){e.currentSlide=Math.abs(t.progress)}),e.$watch("currentSlide",function(e,r){i.isUndefined(e)||e==r||t.slideTo(e)}),i.isUndefined(e.onReady)||e.onReady({swiper:t})})}],link:function(e,r){var t=e.swiper_uuid,n="paginator-"+t,a="prevButton-"+t,s="nextButton-"+t,o="scrollBar-"+t,l=r[0];i.element(l.querySelector(".swiper-pagination")).attr("id",n),i.element(l.querySelector(".swiper-button-next")).attr("id",s),i.element(l.querySelector(".swiper-button-prev")).attr("id",a),i.element(r[0].querySelector(".swiper-scrollbar")).attr("id",o)},template:'
'}}function a(){return{restrict:"E",require:"^ksSwiperContainer",transclude:!0,template:'
',replace:!0}}i.module("ksSwiper",[]).directive("ksSwiperContainer",n).directive("ksSwiperSlide",a)}(window,angular,void 0); \ No newline at end of file +!function(e,i,r){"use strict";function t(){for(var e=[],i="0123456789abcdef",r=0;36>r;r++)e[r]=i.substr(Math.floor(16*Math.random()),1);e[14]="4",e[19]=i.substr(3&e[19]|8,1),e[8]=e[13]=e[18]=e[23]="-";var t=e.join("");return t}function n(){return{restrict:"E",transclude:!0,scope:{onReady:"&",slidesPerView:"=",slidesPerColumn:"=",spaceBetween:"=",parallax:"=",parallaxTransition:"@",paginationIsActive:"=",paginationClickable:"=",showNavButtons:"=",showScrollBar:"=",loop:"=",autoplay:"=",initialSlide:"=",containerCls:"@",wrapperCls:"@",paginationCls:"@",slideCls:"@",direction:"@",swiper:"=",overrideParameters:"=",currentSlide:"="},controller:["$scope","$element","$timeout",function(e,r,n){var a=t();e.swiper_uuid=a;var s={slidesPerView:e.slidesPerView||1,slidesPerColumn:e.slidesPerColumn||1,spaceBetween:e.spaceBetween||0,direction:e.direction||"horizontal",loop:e.loop||!1,initialSlide:e.initialSlide||0,showNavButtons:!1};i.isUndefined(e.autoplay)||"number"!=typeof e.autoplay||(s=i.extend({},s,{autoplay:e.autoplay})),e.paginationIsActive===!0&&(s=i.extend({},s,{paginationClickable:e.paginationClickable||!0,pagination:"#paginator-"+e.swiper_uuid})),e.showNavButtons===!0&&(s.nextButton="#nextButton-"+e.swiper_uuid,s.prevButton="#prevButton-"+e.swiper_uuid),e.showScrollBar===!0&&(s.scrollbar="#scrollBar-"+e.swiper_uuid),e.overrideParameters&&(s=i.extend({},s,e.overrideParameters)),n(function(){var t=null;i.isObject(e.swiper)?(e.swiper=new Swiper(r[0].firstChild,s),t=e.swiper):t=new Swiper(r[0].firstChild,s),i.isUndefined(e.currentSlide)||t.on("transitionEnd",function(){n(function(){e.currentSlide=Math.abs(t.progress)})}),e.$watch("currentSlide",function(e,r){i.isUndefined(e)||e==r||t.slideTo(e)}),i.isUndefined(e.onReady)||e.onReady({swiper:t})})}],link:function(e,r){var t=e.swiper_uuid,n="paginator-"+t,a="prevButton-"+t,s="nextButton-"+t,o="scrollBar-"+t,l=r[0];i.element(l.querySelector(".swiper-pagination")).attr("id",n),i.element(l.querySelector(".swiper-button-next")).attr("id",s),i.element(l.querySelector(".swiper-button-prev")).attr("id",a),i.element(r[0].querySelector(".swiper-scrollbar")).attr("id",o)},template:'
'}}function a(){return{restrict:"E",require:"^ksSwiperContainer",transclude:!0,template:'
',replace:!0}}i.module("ksSwiper",[]).directive("ksSwiperContainer",n).directive("ksSwiperSlide",a)}(window,angular,void 0); \ No newline at end of file diff --git a/src/angular-swiper.js b/src/angular-swiper.js index 30c0844..5c3ccf6 100644 --- a/src/angular-swiper.js +++ b/src/angular-swiper.js @@ -103,7 +103,9 @@ if(!angular.isUndefined($scope.currentSlide)){ swiper.on('transitionEnd', function(){ - $scope.currentSlide = Math.abs(swiper.progress); + $timeout(function(){ + $scope.currentSlide = Math.abs(swiper.progress); + }); }); } From 757155d8bf41afcef14c4ee58bd3d27a31321dbd Mon Sep 17 00:00:00 2001 From: abrbhat Date: Sat, 26 Dec 2015 19:41:07 +0530 Subject: [PATCH 6/9] using activeIndex for getting current slide --- dist/angular-swiper.js | 2 +- src/angular-swiper.js | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/dist/angular-swiper.js b/dist/angular-swiper.js index fa04672..aee645f 100644 --- a/dist/angular-swiper.js +++ b/dist/angular-swiper.js @@ -1 +1 @@ -!function(e,i,r){"use strict";function t(){for(var e=[],i="0123456789abcdef",r=0;36>r;r++)e[r]=i.substr(Math.floor(16*Math.random()),1);e[14]="4",e[19]=i.substr(3&e[19]|8,1),e[8]=e[13]=e[18]=e[23]="-";var t=e.join("");return t}function n(){return{restrict:"E",transclude:!0,scope:{onReady:"&",slidesPerView:"=",slidesPerColumn:"=",spaceBetween:"=",parallax:"=",parallaxTransition:"@",paginationIsActive:"=",paginationClickable:"=",showNavButtons:"=",showScrollBar:"=",loop:"=",autoplay:"=",initialSlide:"=",containerCls:"@",wrapperCls:"@",paginationCls:"@",slideCls:"@",direction:"@",swiper:"=",overrideParameters:"=",currentSlide:"="},controller:["$scope","$element","$timeout",function(e,r,n){var a=t();e.swiper_uuid=a;var s={slidesPerView:e.slidesPerView||1,slidesPerColumn:e.slidesPerColumn||1,spaceBetween:e.spaceBetween||0,direction:e.direction||"horizontal",loop:e.loop||!1,initialSlide:e.initialSlide||0,showNavButtons:!1};i.isUndefined(e.autoplay)||"number"!=typeof e.autoplay||(s=i.extend({},s,{autoplay:e.autoplay})),e.paginationIsActive===!0&&(s=i.extend({},s,{paginationClickable:e.paginationClickable||!0,pagination:"#paginator-"+e.swiper_uuid})),e.showNavButtons===!0&&(s.nextButton="#nextButton-"+e.swiper_uuid,s.prevButton="#prevButton-"+e.swiper_uuid),e.showScrollBar===!0&&(s.scrollbar="#scrollBar-"+e.swiper_uuid),e.overrideParameters&&(s=i.extend({},s,e.overrideParameters)),n(function(){var t=null;i.isObject(e.swiper)?(e.swiper=new Swiper(r[0].firstChild,s),t=e.swiper):t=new Swiper(r[0].firstChild,s),i.isUndefined(e.currentSlide)||t.on("transitionEnd",function(){n(function(){e.currentSlide=Math.abs(t.progress)})}),e.$watch("currentSlide",function(e,r){i.isUndefined(e)||e==r||t.slideTo(e)}),i.isUndefined(e.onReady)||e.onReady({swiper:t})})}],link:function(e,r){var t=e.swiper_uuid,n="paginator-"+t,a="prevButton-"+t,s="nextButton-"+t,o="scrollBar-"+t,l=r[0];i.element(l.querySelector(".swiper-pagination")).attr("id",n),i.element(l.querySelector(".swiper-button-next")).attr("id",s),i.element(l.querySelector(".swiper-button-prev")).attr("id",a),i.element(r[0].querySelector(".swiper-scrollbar")).attr("id",o)},template:'
'}}function a(){return{restrict:"E",require:"^ksSwiperContainer",transclude:!0,template:'
',replace:!0}}i.module("ksSwiper",[]).directive("ksSwiperContainer",n).directive("ksSwiperSlide",a)}(window,angular,void 0); \ No newline at end of file +!function(e,i,r){"use strict";function t(){for(var e=[],i="0123456789abcdef",r=0;36>r;r++)e[r]=i.substr(Math.floor(16*Math.random()),1);e[14]="4",e[19]=i.substr(3&e[19]|8,1),e[8]=e[13]=e[18]=e[23]="-";var t=e.join("");return t}function n(){return{restrict:"E",transclude:!0,scope:{onReady:"&",slidesPerView:"=",slidesPerColumn:"=",spaceBetween:"=",parallax:"=",parallaxTransition:"@",paginationIsActive:"=",paginationClickable:"=",showNavButtons:"=",showScrollBar:"=",loop:"=",autoplay:"=",initialSlide:"=",containerCls:"@",wrapperCls:"@",paginationCls:"@",slideCls:"@",direction:"@",swiper:"=",overrideParameters:"=",currentSlide:"="},controller:["$scope","$element","$timeout",function(e,r,n){var a=t();e.swiper_uuid=a;var s={slidesPerView:e.slidesPerView||1,slidesPerColumn:e.slidesPerColumn||1,spaceBetween:e.spaceBetween||0,direction:e.direction||"horizontal",loop:e.loop||!1,initialSlide:e.initialSlide||0,showNavButtons:!1};i.isUndefined(e.autoplay)||"number"!=typeof e.autoplay||(s=i.extend({},s,{autoplay:e.autoplay})),e.paginationIsActive===!0&&(s=i.extend({},s,{paginationClickable:e.paginationClickable||!0,pagination:"#paginator-"+e.swiper_uuid})),e.showNavButtons===!0&&(s.nextButton="#nextButton-"+e.swiper_uuid,s.prevButton="#prevButton-"+e.swiper_uuid),e.showScrollBar===!0&&(s.scrollbar="#scrollBar-"+e.swiper_uuid),e.overrideParameters&&(s=i.extend({},s,e.overrideParameters)),n(function(){var t=null;i.isObject(e.swiper)?(e.swiper=new Swiper(r[0].firstChild,s),t=e.swiper):t=new Swiper(r[0].firstChild,s),i.isUndefined(e.currentSlide)||t.on("transitionEnd",function(){n(function(){e.currentSlide=Math.abs(t.activeIndex)})}),e.$watch("currentSlide",function(e,r){i.isUndefined(e)||e==r||t.slideTo(e)}),i.isUndefined(e.onReady)||e.onReady({swiper:t})})}],link:function(e,r){var t=e.swiper_uuid,n="paginator-"+t,a="prevButton-"+t,s="nextButton-"+t,o="scrollBar-"+t,l=r[0];i.element(l.querySelector(".swiper-pagination")).attr("id",n),i.element(l.querySelector(".swiper-button-next")).attr("id",s),i.element(l.querySelector(".swiper-button-prev")).attr("id",a),i.element(r[0].querySelector(".swiper-scrollbar")).attr("id",o)},template:'
'}}function a(){return{restrict:"E",require:"^ksSwiperContainer",transclude:!0,template:'
',replace:!0}}i.module("ksSwiper",[]).directive("ksSwiperContainer",n).directive("ksSwiperSlide",a)}(window,angular,void 0); \ No newline at end of file diff --git a/src/angular-swiper.js b/src/angular-swiper.js index 5c3ccf6..4c77c52 100644 --- a/src/angular-swiper.js +++ b/src/angular-swiper.js @@ -104,8 +104,8 @@ if(!angular.isUndefined($scope.currentSlide)){ swiper.on('transitionEnd', function(){ $timeout(function(){ - $scope.currentSlide = Math.abs(swiper.progress); - }); + $scope.currentSlide = Math.abs(swiper.activeIndex); + }); }); } From fb74fd3e65f394e449517b3b4728a6f9ed500d83 Mon Sep 17 00:00:00 2001 From: abrbhat Date: Sat, 26 Dec 2015 20:07:37 +0530 Subject: [PATCH 7/9] using slideChangeEnd for slide change detection --- dist/angular-swiper.js | 2 +- src/angular-swiper.js | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/dist/angular-swiper.js b/dist/angular-swiper.js index aee645f..fd7d8ba 100644 --- a/dist/angular-swiper.js +++ b/dist/angular-swiper.js @@ -1 +1 @@ -!function(e,i,r){"use strict";function t(){for(var e=[],i="0123456789abcdef",r=0;36>r;r++)e[r]=i.substr(Math.floor(16*Math.random()),1);e[14]="4",e[19]=i.substr(3&e[19]|8,1),e[8]=e[13]=e[18]=e[23]="-";var t=e.join("");return t}function n(){return{restrict:"E",transclude:!0,scope:{onReady:"&",slidesPerView:"=",slidesPerColumn:"=",spaceBetween:"=",parallax:"=",parallaxTransition:"@",paginationIsActive:"=",paginationClickable:"=",showNavButtons:"=",showScrollBar:"=",loop:"=",autoplay:"=",initialSlide:"=",containerCls:"@",wrapperCls:"@",paginationCls:"@",slideCls:"@",direction:"@",swiper:"=",overrideParameters:"=",currentSlide:"="},controller:["$scope","$element","$timeout",function(e,r,n){var a=t();e.swiper_uuid=a;var s={slidesPerView:e.slidesPerView||1,slidesPerColumn:e.slidesPerColumn||1,spaceBetween:e.spaceBetween||0,direction:e.direction||"horizontal",loop:e.loop||!1,initialSlide:e.initialSlide||0,showNavButtons:!1};i.isUndefined(e.autoplay)||"number"!=typeof e.autoplay||(s=i.extend({},s,{autoplay:e.autoplay})),e.paginationIsActive===!0&&(s=i.extend({},s,{paginationClickable:e.paginationClickable||!0,pagination:"#paginator-"+e.swiper_uuid})),e.showNavButtons===!0&&(s.nextButton="#nextButton-"+e.swiper_uuid,s.prevButton="#prevButton-"+e.swiper_uuid),e.showScrollBar===!0&&(s.scrollbar="#scrollBar-"+e.swiper_uuid),e.overrideParameters&&(s=i.extend({},s,e.overrideParameters)),n(function(){var t=null;i.isObject(e.swiper)?(e.swiper=new Swiper(r[0].firstChild,s),t=e.swiper):t=new Swiper(r[0].firstChild,s),i.isUndefined(e.currentSlide)||t.on("transitionEnd",function(){n(function(){e.currentSlide=Math.abs(t.activeIndex)})}),e.$watch("currentSlide",function(e,r){i.isUndefined(e)||e==r||t.slideTo(e)}),i.isUndefined(e.onReady)||e.onReady({swiper:t})})}],link:function(e,r){var t=e.swiper_uuid,n="paginator-"+t,a="prevButton-"+t,s="nextButton-"+t,o="scrollBar-"+t,l=r[0];i.element(l.querySelector(".swiper-pagination")).attr("id",n),i.element(l.querySelector(".swiper-button-next")).attr("id",s),i.element(l.querySelector(".swiper-button-prev")).attr("id",a),i.element(r[0].querySelector(".swiper-scrollbar")).attr("id",o)},template:'
'}}function a(){return{restrict:"E",require:"^ksSwiperContainer",transclude:!0,template:'
',replace:!0}}i.module("ksSwiper",[]).directive("ksSwiperContainer",n).directive("ksSwiperSlide",a)}(window,angular,void 0); \ No newline at end of file +!function(e,i,r){"use strict";function t(){for(var e=[],i="0123456789abcdef",r=0;36>r;r++)e[r]=i.substr(Math.floor(16*Math.random()),1);e[14]="4",e[19]=i.substr(3&e[19]|8,1),e[8]=e[13]=e[18]=e[23]="-";var t=e.join("");return t}function n(){return{restrict:"E",transclude:!0,scope:{onReady:"&",slidesPerView:"=",slidesPerColumn:"=",spaceBetween:"=",parallax:"=",parallaxTransition:"@",paginationIsActive:"=",paginationClickable:"=",showNavButtons:"=",showScrollBar:"=",loop:"=",autoplay:"=",initialSlide:"=",containerCls:"@",wrapperCls:"@",paginationCls:"@",slideCls:"@",direction:"@",swiper:"=",overrideParameters:"=",currentSlide:"="},controller:["$scope","$element","$timeout",function(e,r,n){var a=t();e.swiper_uuid=a;var s={slidesPerView:e.slidesPerView||1,slidesPerColumn:e.slidesPerColumn||1,spaceBetween:e.spaceBetween||0,direction:e.direction||"horizontal",loop:e.loop||!1,initialSlide:e.initialSlide||0,showNavButtons:!1};i.isUndefined(e.autoplay)||"number"!=typeof e.autoplay||(s=i.extend({},s,{autoplay:e.autoplay})),e.paginationIsActive===!0&&(s=i.extend({},s,{paginationClickable:e.paginationClickable||!0,pagination:"#paginator-"+e.swiper_uuid})),e.showNavButtons===!0&&(s.nextButton="#nextButton-"+e.swiper_uuid,s.prevButton="#prevButton-"+e.swiper_uuid),e.showScrollBar===!0&&(s.scrollbar="#scrollBar-"+e.swiper_uuid),e.overrideParameters&&(s=i.extend({},s,e.overrideParameters)),n(function(){var t=null;i.isObject(e.swiper)?(e.swiper=new Swiper(r[0].firstChild,s),t=e.swiper):t=new Swiper(r[0].firstChild,s),i.isUndefined(e.currentSlide)||t.on("slideChangeEnd",function(){n(function(){e.currentSlide=Math.abs(t.activeIndex)})}),e.$watch("currentSlide",function(e,r){i.isUndefined(e)||e==r||t.slideTo(e)}),i.isUndefined(e.onReady)||e.onReady({swiper:t})})}],link:function(e,r){var t=e.swiper_uuid,n="paginator-"+t,a="prevButton-"+t,s="nextButton-"+t,o="scrollBar-"+t,l=r[0];i.element(l.querySelector(".swiper-pagination")).attr("id",n),i.element(l.querySelector(".swiper-button-next")).attr("id",s),i.element(l.querySelector(".swiper-button-prev")).attr("id",a),i.element(r[0].querySelector(".swiper-scrollbar")).attr("id",o)},template:'
'}}function a(){return{restrict:"E",require:"^ksSwiperContainer",transclude:!0,template:'
',replace:!0}}i.module("ksSwiper",[]).directive("ksSwiperContainer",n).directive("ksSwiperSlide",a)}(window,angular,void 0); \ No newline at end of file diff --git a/src/angular-swiper.js b/src/angular-swiper.js index 4c77c52..036df3d 100644 --- a/src/angular-swiper.js +++ b/src/angular-swiper.js @@ -102,7 +102,7 @@ } if(!angular.isUndefined($scope.currentSlide)){ - swiper.on('transitionEnd', function(){ + swiper.on('slideChangeEnd', function(){ $timeout(function(){ $scope.currentSlide = Math.abs(swiper.activeIndex); }); From ea2f517fc7f47fcb48280654600e96b5354c0e36 Mon Sep 17 00:00:00 2001 From: abrbhat Date: Sun, 27 Dec 2015 11:11:08 +0530 Subject: [PATCH 8/9] bumped up swiper version in bower.json --- bower.json | 4 ++-- package.js | 2 +- package.json | 2 +- 3 files changed, 4 insertions(+), 4 deletions(-) diff --git a/bower.json b/bower.json index a16013c..a0b4544 100644 --- a/bower.json +++ b/bower.json @@ -1,6 +1,6 @@ { "name": "angular-swiper", - "version": "0.3.3", + "version": "0.3.4-alpha.3", "homepage": "https://github.com/ksachdeva/angular-swiper", "authors": [ "Kapil Sachdeva " @@ -20,7 +20,7 @@ "tests" ], "dependencies": { - "swiper": "~3.0.5", + "swiper": "~3.2.7", "angular": ">=1.3" } } diff --git a/package.js b/package.js index 1e038ec..d56a490 100644 --- a/package.js +++ b/package.js @@ -1,6 +1,6 @@ var packageName = 'aaronroberson:angular-swiper'; var where = 'client'; -var version = '0.3.3'; +var version = '0.3.4-alpha.3'; var summary = 'Angular directive for iDangero.us Swiper re-packaged for Meteor.'; var gitLink = 'https://github.com/aaronroberson/angular-swiper'; var documentationFile = 'README.md'; diff --git a/package.json b/package.json index 5f65b1a..2bc589d 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "angular-swiper", - "version": "0.3.3", + "version": "0.3.4-alpha.3", "description": "Angular directive for nolimits4web/swiper", "main": "dist/angular-swiper.js", "scripts": { From 634ff67f17e2b7a1fdf2695b799689beac1a2040 Mon Sep 17 00:00:00 2001 From: abrbhat Date: Mon, 28 Dec 2015 17:57:40 +0530 Subject: [PATCH 9/9] currentSlide adjusted for loops --- dist/angular-swiper.js | 2 +- src/angular-swiper.js | 33 ++++++++++++++++++++++++++++----- 2 files changed, 29 insertions(+), 6 deletions(-) diff --git a/dist/angular-swiper.js b/dist/angular-swiper.js index fd7d8ba..305e150 100644 --- a/dist/angular-swiper.js +++ b/dist/angular-swiper.js @@ -1 +1 @@ -!function(e,i,r){"use strict";function t(){for(var e=[],i="0123456789abcdef",r=0;36>r;r++)e[r]=i.substr(Math.floor(16*Math.random()),1);e[14]="4",e[19]=i.substr(3&e[19]|8,1),e[8]=e[13]=e[18]=e[23]="-";var t=e.join("");return t}function n(){return{restrict:"E",transclude:!0,scope:{onReady:"&",slidesPerView:"=",slidesPerColumn:"=",spaceBetween:"=",parallax:"=",parallaxTransition:"@",paginationIsActive:"=",paginationClickable:"=",showNavButtons:"=",showScrollBar:"=",loop:"=",autoplay:"=",initialSlide:"=",containerCls:"@",wrapperCls:"@",paginationCls:"@",slideCls:"@",direction:"@",swiper:"=",overrideParameters:"=",currentSlide:"="},controller:["$scope","$element","$timeout",function(e,r,n){var a=t();e.swiper_uuid=a;var s={slidesPerView:e.slidesPerView||1,slidesPerColumn:e.slidesPerColumn||1,spaceBetween:e.spaceBetween||0,direction:e.direction||"horizontal",loop:e.loop||!1,initialSlide:e.initialSlide||0,showNavButtons:!1};i.isUndefined(e.autoplay)||"number"!=typeof e.autoplay||(s=i.extend({},s,{autoplay:e.autoplay})),e.paginationIsActive===!0&&(s=i.extend({},s,{paginationClickable:e.paginationClickable||!0,pagination:"#paginator-"+e.swiper_uuid})),e.showNavButtons===!0&&(s.nextButton="#nextButton-"+e.swiper_uuid,s.prevButton="#prevButton-"+e.swiper_uuid),e.showScrollBar===!0&&(s.scrollbar="#scrollBar-"+e.swiper_uuid),e.overrideParameters&&(s=i.extend({},s,e.overrideParameters)),n(function(){var t=null;i.isObject(e.swiper)?(e.swiper=new Swiper(r[0].firstChild,s),t=e.swiper):t=new Swiper(r[0].firstChild,s),i.isUndefined(e.currentSlide)||t.on("slideChangeEnd",function(){n(function(){e.currentSlide=Math.abs(t.activeIndex)})}),e.$watch("currentSlide",function(e,r){i.isUndefined(e)||e==r||t.slideTo(e)}),i.isUndefined(e.onReady)||e.onReady({swiper:t})})}],link:function(e,r){var t=e.swiper_uuid,n="paginator-"+t,a="prevButton-"+t,s="nextButton-"+t,o="scrollBar-"+t,l=r[0];i.element(l.querySelector(".swiper-pagination")).attr("id",n),i.element(l.querySelector(".swiper-button-next")).attr("id",s),i.element(l.querySelector(".swiper-button-prev")).attr("id",a),i.element(r[0].querySelector(".swiper-scrollbar")).attr("id",o)},template:'
'}}function a(){return{restrict:"E",require:"^ksSwiperContainer",transclude:!0,template:'
',replace:!0}}i.module("ksSwiper",[]).directive("ksSwiperContainer",n).directive("ksSwiperSlide",a)}(window,angular,void 0); \ No newline at end of file +!function(e,i,r){"use strict";function t(){for(var e=[],i="0123456789abcdef",r=0;36>r;r++)e[r]=i.substr(Math.floor(16*Math.random()),1);e[14]="4",e[19]=i.substr(3&e[19]|8,1),e[8]=e[13]=e[18]=e[23]="-";var t=e.join("");return t}function a(){return{restrict:"E",transclude:!0,scope:{onReady:"&",slidesPerView:"=",slidesPerColumn:"=",spaceBetween:"=",parallax:"=",parallaxTransition:"@",paginationIsActive:"=",paginationClickable:"=",showNavButtons:"=",showScrollBar:"=",loop:"=",autoplay:"=",initialSlide:"=",containerCls:"@",wrapperCls:"@",paginationCls:"@",slideCls:"@",direction:"@",swiper:"=",overrideParameters:"=",currentSlide:"="},controller:["$scope","$element","$timeout",function(e,r,a){var n=t();e.swiper_uuid=n;var s={slidesPerView:e.slidesPerView||1,slidesPerColumn:e.slidesPerColumn||1,spaceBetween:e.spaceBetween||0,direction:e.direction||"horizontal",loop:e.loop||!1,initialSlide:e.initialSlide||0,showNavButtons:!1};i.isUndefined(e.autoplay)||"number"!=typeof e.autoplay||(s=i.extend({},s,{autoplay:e.autoplay})),e.paginationIsActive===!0&&(s=i.extend({},s,{paginationClickable:e.paginationClickable||!0,pagination:"#paginator-"+e.swiper_uuid})),e.showNavButtons===!0&&(s.nextButton="#nextButton-"+e.swiper_uuid,s.prevButton="#prevButton-"+e.swiper_uuid),e.showScrollBar===!0&&(s.scrollbar="#scrollBar-"+e.swiper_uuid),e.overrideParameters&&(s=i.extend({},s,e.overrideParameters)),a(function(){var t=null;i.isObject(e.swiper)?(e.swiper=new Swiper(r[0].firstChild,s),t=e.swiper):t=new Swiper(r[0].firstChild,s),i.isUndefined(e.currentSlide)||t.on("slideChangeEnd",function(){a(function(){if(e.internalSlide=!0,t.params.loop){var i=r[0].querySelector(".swiper-slide-active"),a=i.attributes["data-swiper-slide-index"].value;e.currentSlide=parseInt(a,10)}else e.currentSlide=Math.abs(t.activeIndex)})}),e.$watch("currentSlide",function(r,a){if(e.internalSlide)return void(e.internalSlide=!1);if(!i.isUndefined(r)&&r!=a)if(t.params.loop)for(var n=0;n
'}}function n(){return{restrict:"E",require:"^ksSwiperContainer",transclude:!0,template:'
',replace:!0}}i.module("ksSwiper",[]).directive("ksSwiperContainer",a).directive("ksSwiperSlide",n)}(window,angular,void 0); \ No newline at end of file diff --git a/src/angular-swiper.js b/src/angular-swiper.js index 036df3d..3d894bd 100644 --- a/src/angular-swiper.js +++ b/src/angular-swiper.js @@ -101,17 +101,40 @@ swiper = new Swiper($element[0].firstChild, params); } - if(!angular.isUndefined($scope.currentSlide)){ + if (!angular.isUndefined($scope.currentSlide)){ swiper.on('slideChangeEnd', function(){ - $timeout(function(){ - $scope.currentSlide = Math.abs(swiper.activeIndex); + $timeout (function(){ + $scope.internalSlide = true; + if (swiper.params.loop){ + var currentSlideElement = $element[0].querySelector('.swiper-slide-active'); + var currentSlideIndexString = currentSlideElement.attributes['data-swiper-slide-index'].value; + $scope.currentSlide = parseInt(currentSlideIndexString, 10); + } else { + $scope.currentSlide = Math.abs(swiper.activeIndex); + } }); }); } $scope.$watch('currentSlide', function(newValue, oldValue){ - if ((!angular.isUndefined(newValue)) && (newValue != oldValue)){ - swiper.slideTo(newValue); + if ($scope.internalSlide){ + $scope.internalSlide = false; + return; + } + if ((!angular.isUndefined(newValue)) && (newValue != oldValue)){ + if (swiper.params.loop){ + var possibleDestinationIndexes = []; + for (var index = 0; index < swiper.slides.length; index++){ + var slide = swiper.slides[index]; + var dataIndex = parseInt(slide.attributes['data-swiper-slide-index'].value, 10); + if(dataIndex === newValue){ + swiper.slideTo(index); + break; + } + } + } else { + swiper.slideTo(newValue); + } } });