Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Ionic Framework: GridLayout with multiple rows and column on which buttons placed for an arrayItem

On a page, using ng-repeat, I try to place buttons on a grid layout. Iterating through an array which is defined in a controller $scope.btnNames[]. buttons are place on Total number of buttons equal to array size of $scope.btnNames[]

I would like to put say 4 buttons per row. As $scope.btnNames[] size is 20, then I like to place 20 buttons on 5 rows, where each row will have 4 buttons.

1) on Controller : - I have an array with button names $scope.btnNames['aa', 'bb', 'cc','dd', 'ee', 'ff'....] whose size is 20.

2) on the page: - using ng-repeat, iterate throught the
$scope.btnNames[] and put buttons as per follwoing code

<body ng-controller="PopupCtrl">
 <div class="row responsive-sm"> 
    <div ng-repeat="btnName in btnNames"> 
       <button id={{$index}} class="button button-dark col" >{{btnName}}</button>
    </div>
</div>

Please help me defining class="row" and class="col" and such a way that, during ng-repate, after 4th button, it should add a new row and place 4 buttons till it reach end of ng-repeat.

Being new to both ionic and angulrJs, I'm not able to define class="row" during ng-repeat ( similar like a for loop, where, put a new class="row", when iterator counter in this case {{index}} greater than 4.

like image 931
Naresh Avatar asked Dec 02 '14 00:12

Naresh


2 Answers

Worked for me as soon as I added flex-wrap: wrap in the styling. Since i have set col-50 I started getting rows with two columns as intended.

Example:

<div class="row" style="flex-wrap: wrap;">
    <div class="col col-50" ng-repeat="picture in pictures">
        {{picture.src}}
    </div>
</div>
like image 79
Animesh Rawat Avatar answered Sep 28 '22 01:09

Animesh Rawat


Use flex-wrap

You can get this behavior by using style="flex-wrap: wrap;" + the following CSS classes:

<div class="row" style="flex-wrap: wrap;">
    <div class="col col-25" ng-repeat="btnName in btnNames"> 
        <button class="button button-dark" >{{btnName}}</button>
    </div>
</div>

http://codepen.io/Jossef/pen/doeJJP

like image 29
Jossef Harush Kadouri Avatar answered Sep 28 '22 01:09

Jossef Harush Kadouri