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
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;
}
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'});
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With