Skip to content
Prev Previous commit
Next Next commit
Fixes a bug that was showing only one slider when multiple were gener…
…ated with an `ng-repeat`.

Fix #20
  • Loading branch information
thenikso authored and Ross Wilson committed Aug 8, 2014
commit f51578f43d665b7677dbcbe4dcd8f7a6bef3fe80
14 changes: 7 additions & 7 deletions angular-flexslider.coffee
Original file line number Diff line number Diff line change
Expand Up @@ -8,15 +8,15 @@ angular.module('angular-flexslider', [])
transclude: yes
template: '<div class="flexslider-container"></div>'
compile: (element, attr, linker) ->
match = attr.slide.match /^\s*(.+)\s+in\s+(.*?)(?:\s+track\s+by\s+(.+?))?\s*$/
indexString = match[1]
collectionString = match[2]
trackBy = if angular.isDefined(match[3]) then $parse(match[3]) else $parse("#{indexString}")
($scope, $element) ->
match = attr.slide.match /^\s*(.+)\s+in\s+(.*?)(?:\s+track\s+by\s+(.+?))?\s*$/
indexString = match[1]
collectionString = match[2]
trackBy = if angular.isDefined(match[3]) then $parse(match[3]) else $parse("#{indexString}")

flexsliderDiv = null
slidesItems = {}
flexsliderDiv = null
slidesItems = {}

($scope, $element) ->
getTrackFromItem = (collectionItem, index) ->
locals = {}
locals[indexString] = collectionItem
Expand Down
16 changes: 7 additions & 9 deletions angular-flexslider.js

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

51 changes: 51 additions & 0 deletions examples/multiple-sliders.html
Original file line number Diff line number Diff line change
@@ -0,0 +1,51 @@
<!DOCTYPE html>
<html ng-app="MultipleSliders">

<head>
<title>Angular FlexSlider Example - Multiple Sliders</title>
<link rel="stylesheet" type="text/css" href="../bower_components/flexslider/flexslider.css">
<style type="text/css">
.flexslider-container {
height: 300px;
}
</style>
</head>

<body ng-controller="MultipleSlidersCtrl">

<div ng-repeat="slideshow in slideshows">
<flex-slider
slide="s in slideshow track by $index"
animation="slide">
<li>
<img ng-src="{{s}}">
</li>
</flex-slider>
</div>

<script src="../bower_components/jquery/jquery.js"></script>
<script src="../bower_components/flexslider/jquery.flexslider.js"></script>
<script src="../bower_components/angular/angular.js"></script>
<script src="../angular-flexslider.js"></script>
<script type="text/javascript">
angular.module('MultipleSliders', ['angular-flexslider'])
.controller('MultipleSlidersCtrl', function ($scope) {
$scope.slideshows = [
[
'http://flexslider.woothemes.com/images/kitchen_adventurer_cheesecake_brownie.jpg',
'http://flexslider.woothemes.com/images/kitchen_adventurer_lemon.jpg',
'http://flexslider.woothemes.com/images/kitchen_adventurer_donut.jpg',
'http://flexslider.woothemes.com/images/kitchen_adventurer_caramel.jpg'
],
[
'http://flexslider.woothemes.com/images/kitchen_adventurer_cheesecake_brownie.jpg',
'http://flexslider.woothemes.com/images/kitchen_adventurer_lemon.jpg',
'http://flexslider.woothemes.com/images/kitchen_adventurer_donut.jpg',
'http://flexslider.woothemes.com/images/kitchen_adventurer_caramel.jpg'
]
];
});
</script>
</body>

</html>