Slight adjustment for #290 - slide box slide index

This commit is contained in:
Max Lynch
2013-12-08 17:01:54 -06:00
parent 78f1b1ce28
commit cdd5d06b6c
5 changed files with 66 additions and 20 deletions

View File

@@ -1861,13 +1861,25 @@ angular.module('ionic.ui.slideBox', [])
restrict: 'E',
replace: true,
transclude: true,
scope: {},
controller: ['$scope', '$element', function($scope, $element) {
$scope.slides = [];
this.slideAdded = function() {
$scope.slides.push({});
};
angular.extend(this, ionic.views.SlideBox.prototype);
ionic.views.SlideBox.call(this, {
el: $element[0],
slideChanged: function(slideIndex) {
$scope.$parent.$broadcast('slideBox.slideChanged', slideIndex);
$scope.$apply();
}
});
$scope.$parent.slideBox = this;
}],
scope: {},
template: '<div class="slide-box">\
<div class="slide-box-slides" ng-transclude>\
</div>\
@@ -1879,13 +1891,6 @@ angular.module('ionic.ui.slideBox', [])
var childScope = $scope.$new();
var pager = $compile('<pager></pager>')(childScope);
$element.append(pager);
$scope.slideBox = new ionic.views.SlideBox({
el: $element[0],
slideChanged: function(slideIndex) {
$scope.$parent.$broadcast('slideBox.slideChanged', slideIndex);
}
});
}
}
};

View File

File diff suppressed because one or more lines are too long

View File

@@ -20,13 +20,25 @@ angular.module('ionic.ui.slideBox', [])
restrict: 'E',
replace: true,
transclude: true,
scope: {},
controller: ['$scope', '$element', function($scope, $element) {
$scope.slides = [];
this.slideAdded = function() {
$scope.slides.push({});
};
angular.extend(this, ionic.views.SlideBox.prototype);
ionic.views.SlideBox.call(this, {
el: $element[0],
slideChanged: function(slideIndex) {
$scope.$parent.$broadcast('slideBox.slideChanged', slideIndex);
$scope.$apply();
}
});
$scope.$parent.slideBox = this;
}],
scope: {},
template: '<div class="slide-box">\
<div class="slide-box-slides" ng-transclude>\
</div>\
@@ -38,13 +50,6 @@ angular.module('ionic.ui.slideBox', [])
var childScope = $scope.$new();
var pager = $compile('<pager></pager>')(childScope);
$element.append(pager);
$scope.slideBox = new ionic.views.SlideBox({
el: $element[0],
slideChanged: function(slideIndex) {
$scope.$parent.$broadcast('slideBox.slideChanged', slideIndex);
}
});
}
}
};

View File

@@ -0,0 +1,32 @@
/**
* Test the side menu directive. For more test coverage of the side menu,
* see the core Ionic sideMenu controller tests.
*/
describe('Ionic Angular Slide Box', function() {
var el;
beforeEach(module('ionic.ui.slideBox'));
beforeEach(inject(function($compile, $rootScope) {
el = $compile('<slide-box>\
<slide>\
<div class="box blue">\
<h1>BLUE {{slideBox.slideIndex}}</h1>\
</div>\
</slide>\
<slide>\
<div class="box yellow">\
<h1>YELLOW {{slideBox.slideIndex}}</h1>\
</div>\
</slide>\
<slide>\
<div class="box pink"><h1>PINK {{slideBox.slideIndex}}</h1></div>\
</slide>\
</slide-box>');
}));
it('Should init', function() {
var scope = el.scope();
expect(scope.slideBox).not.toBe(undefined);
});
});

View File

@@ -47,13 +47,17 @@
<div ng-controller="SlideCtrl">
<slide-box>
<slide>
<div class="box blue"><h1>BLUE</h1></div>
<div class="box blue">
<h1>BLUE {{slideBox.slideIndex}}</h1>
</div>
</slide>
<slide>
<div class="box yellow"><h1>YELLOW</h1></div>
<div class="box yellow">
<h1>YELLOW {{slideBox.slideIndex}}</h1>
</div>
</slide>
<slide>
<div class="box pink"><h1>PINK</h1></div>
<div class="box pink"><h1>PINK {{slideBox.slideIndex}}</h1></div>
</slide>
</slide-box>
</div>