|
21 | 21 | Swiper
|
22 | 22 | ===========================*/
|
23 | 23 | var Swiper = function (container, params) {
|
| 24 | + |
24 | 25 | if (!(this instanceof Swiper)) return new Swiper(container, params);
|
25 | 26 |
|
26 | 27 | var defaults = {
|
|
418 | 419 | // Velocity
|
419 | 420 | s.velocity = 0;
|
420 | 421 |
|
| 422 | + // Remove duplicated slides |
| 423 | + var $compile = angular.element(s.wrapper).injector().get('$compile'); |
| 424 | + |
421 | 425 | /*=========================
|
422 | 426 | Locks, unlocks
|
423 | 427 | ===========================*/
|
|
2048 | 2052 | ===========================*/
|
2049 | 2053 | // Create looped slides
|
2050 | 2054 | s.createLoop = function () {
|
2051 |
| - // Remove duplicated slides |
| 2055 | + |
2052 | 2056 | s.wrapper.children('.' + s.params.slideClass + '.' + s.params.slideDuplicateClass).remove();
|
2053 | 2057 |
|
2054 | 2058 | var slides = s.wrapper.children('.' + s.params.slideClass);
|
|
2061 | 2065 | s.loopedSlides = slides.length;
|
2062 | 2066 | }
|
2063 | 2067 |
|
2064 |
| - var prependSlides = [], appendSlides = [], i; |
| 2068 | + var prependSlides = [], appendSlides = [], i, scope, newNode; |
2065 | 2069 | slides.each(function (index, el) {
|
2066 | 2070 | var slide = $(this);
|
2067 | 2071 | if (index < s.loopedSlides) appendSlides.push(el);
|
2068 | 2072 | if (index < slides.length && index >= slides.length - s.loopedSlides) prependSlides.push(el);
|
2069 | 2073 | slide.attr('data-swiper-slide-index', index);
|
2070 | 2074 | });
|
2071 | 2075 | for (i = 0; i < appendSlides.length; i++) {
|
2072 |
| - s.wrapper.append($(appendSlides[i].cloneNode(true)).addClass(s.params.slideDuplicateClass)); |
| 2076 | + newNode = angular.element(appendSlides[i]).clone().addClass(s.params.slideDuplicateClass); |
| 2077 | + newNode.removeAttr('ng-transclude'); |
| 2078 | + newNode.removeAttr('ng-repeat'); |
| 2079 | + scope = angular.element(appendSlides[i]).scope(); |
| 2080 | + newNode = $compile(newNode)(scope); |
| 2081 | + angular.element(s.wrapper).append(newNode); |
| 2082 | + //s.wrapper.append($(appendSlides[i].cloneNode(true)).addClass(s.params.slideDuplicateClass)); |
2073 | 2083 | }
|
2074 | 2084 | for (i = prependSlides.length - 1; i >= 0; i--) {
|
2075 |
| - s.wrapper.prepend($(prependSlides[i].cloneNode(true)).addClass(s.params.slideDuplicateClass)); |
| 2085 | + //s.wrapper.prepend($(prependSlides[i].cloneNode(true)).addClass(s.params.slideDuplicateClass)); |
| 2086 | + |
| 2087 | + newNode = angular.element(prependSlides[i]).clone().addClass(s.params.slideDuplicateClass); |
| 2088 | + newNode.removeAttr('ng-transclude'); |
| 2089 | + newNode.removeAttr('ng-repeat'); |
| 2090 | + |
| 2091 | + scope = angular.element(prependSlides[i]).scope(); |
| 2092 | + newNode = $compile(newNode)(scope); |
| 2093 | + angular.element(s.wrapper).prepend(newNode); |
2076 | 2094 | }
|
2077 | 2095 | };
|
2078 | 2096 | s.destroyLoop = function () {
|
|
0 commit comments