6

I'm using Ionic framework and Angular js to build a news app !

I'm showing the news on ion-slide-box using ng-repeat here is an example :

<ion-slide-box on-slide-changed="slideHasChanged($index)" show-pager="true" ng-if="items" >
  <ion-slide  ng-repeat="i in items">   
           <h4>{{i.name}}</h4>       
<p>{{i.gender}}</p> 
    <p>{{i.age}}</p>
</div> 
  </ion-slide>
    </ion-slide-box>

I want to insert data dynamically to my ion-slide-box for each slide so I'm using this code :

   $scope.slideHasChanged = function(index) {

          $scope.items.push("{name:'John', age:25, gender:'boy'}");
      }

but this doesn't seem to work right so if you have an idea on how can I reslove this that would be great :)

here is CODEPEN + CODE

2 Answers 2

8

You need to call the update method on $ionicSlideBoxDelegate. (Also, @mark-veenstra is correct, you're pushing a string and not an object).

angular.module('ionicApp', ['ionic'])

.controller('MyCtrl', function($scope, $ionicSlideBoxDelegate) {
  $scope.items=friends;

  $scope.slideHasChanged = function() {
    $scope.items.push({name:'John', age:25, gender:'boy'});
    $ionicSlideBoxDelegate.update();
  };

});

var friends = [
  {name:'John', age:25, gender:'boy'},
  {name:'Jessie', age:30, gender:'girl'},
  {name:'Johanna', age:28, gender:'girl'},
  {name:'Joy', age:15, gender:'girl'},
  {name:'Mary', age:28, gender:'girl'}
];

Also, make sure that you give your slider a height:

.slider {
  height: 200px;
}
Sign up to request clarification or add additional context in comments.

1 Comment

Worked for me, i was populating the images using ion-slider, the issue i was facing was, only the last image was showing and the slider was not changing as well. Just placed the $ionicSlideBoxDelegate.update(); method after my $scope.images object and it worked perfectly for me.
1

I'm not completely sure what you are trying to achieve, but if you want this code to work, just change:

$scope.items.push("{name:'John', age:25, gender:'boy'}");

To:

$scope.items.push({name:'John', age:25, gender:'boy'});

Comments

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.