mirror of
https://github.com/ionic-team/ionic-framework.git
synced 2026-03-13 10:22:08 +08:00
fix(slideBox): if selected binding is string, parse to integer
This commit is contained in:
2
js/angular/controller/slideBoxController.js
vendored
2
js/angular/controller/slideBoxController.js
vendored
@@ -178,6 +178,8 @@ function(scope, element, $log, $document, $$q, $timeout, $interval, $$ionicAttac
|
||||
// adds data to the queue for selection.
|
||||
// Index can be either a number or a getter (to be called when starting the slide)
|
||||
function select(newIndex, transitionDuration, isDrag) {
|
||||
newIndex = parseInt(newIndex);
|
||||
if (isNaN(newIndex) || newIndex < 0) return;
|
||||
slideQueue.unshift([
|
||||
angular.isFunction(newIndex) ? newIndex : function() { return newIndex; },
|
||||
transitionDuration || SLIDE_TRANSITION_DURATION,
|
||||
|
||||
@@ -340,6 +340,24 @@ describe('ionSlideBox', function() {
|
||||
expect(slideDisplays(el)).toEqual(['selected', 'next', 'previous']);
|
||||
}));
|
||||
|
||||
it('strings and negative numbers', inject(function($timeout, $rootScope) {
|
||||
var el = setup();
|
||||
$timeout.flush();
|
||||
|
||||
// Do nothing for -1
|
||||
$del.select(-1);
|
||||
$timeout.verifyNoPendingTasks();
|
||||
|
||||
// Do nothing for NaN
|
||||
$del.select(NaN);
|
||||
$timeout.verifyNoPendingTasks();
|
||||
|
||||
// parse to int
|
||||
$del.select('1');
|
||||
$timeout.flush();
|
||||
expect($del.selected()).toBe(1);
|
||||
}));
|
||||
|
||||
it('when queueing, should only publish after final slide', inject(function($timeout, $rootScope) {
|
||||
$rootScope.changed = jasmine.createSpy('changed');
|
||||
$rootScope.start = jasmine.createSpy('start');
|
||||
|
||||
Reference in New Issue
Block a user