Receiving Type Error Cannot Read 'length' ionic.bundle.js


#1

I have been struggling to find a big in my code that is causing this error :smile:
Receiving Type Error Cannot Read 'length' ionic.bundle.js

I have tracked it down to this piece of code - has anyone seen this before or know how to correct it? I expect its an issue with slidebox delegate however commenting this out does not make a difference and my template code is exactly the same as in other views that use a slidebox without issues?

$ionicModal.fromTemplateUrl('templates/exercise-modal.html', {
  scope: $scope
}).then(function (addExerciseModal) {
  $scope.addExerciseModal = addExerciseModal;
});

// Triggered in the exercise modal to close it
$scope.closeAddExerciseModal = function() {
  $scope.addExerciseModal.hide();
};

// Open the exercise modal
$scope.OpenAddExerciseModal = function() {
    $ionicSlideBoxDelegate.slide(0);
    $scope.addExerciseModal.show();
};

#2

maybe you have no slidebox with slides?

So the $ionicSlideBoxDelegate resturns undefined -> und the slide functions tries to figure out how many slides are there -> and it is trying to call undefined.length


#3

Would that be the case even if I comment out this line!i still get the error…


#4

could you poste the ionic version and the line number the error occured?


#5

See the SO post

Many thanks


#6

and you are sure that the controller is connected with a template where you are using ion-slide-box and ion-slides?

your template would be nice or a working code-pen


#7

Ok, so this is my template code and when its all commented out I do not get the error.

<ion-slide-box class="exercise-slider-slides" does-continue="false" auto-play="true" show-pager="false">

  <ion-slide ng-repeat="image in activeExercise.images">

    <div class="modalSliderThumbnail" style="background-image:url(http://www.rehabguru.com/image/medium/{{image}}.jpg)"></div>

  </ion-slide>
</ion-slide-box>

This is inside a modal that does not know the length of activeExercise.images upon loading the main page as I pass in that variable depending on the exercise loaded.

do you think that is what is happening? If so how can I assign it a value on page load to ensure its happy?


#8

and so if $scope.activeExercise.images is not defined or empty -> you have an empty ion-slide-box.

i would add a ng-if to you ion-slide-box and only hang it into the dom, if you have slides :wink:


#9

lol - that works :slight_smile:

Thanks for working through it with me!