How can I build this layout with AngularJS -


i'm using ng-repeater list items on page. issue need special html containers around 2 items , don't. here's result need 6 item repeater (pseudo output):

<section class="ab">     <group class="a">         <item>item 1</item>     </group>     <group class="b">         <item>item 2</item>         <item>item 3</item>     </group> </section> <section class="ba">     <group class="b">         <item>item 4</item>         <item>item 5</item>     </group>     <group class="a">         <item>item 6</item>     </group> </section> 

here rules i'm having follow:

  • the <section> class refers layout of groups inside
  • group ever has 1 item
  • group b likes have 2 items can deal 1 in case run out of items

from research of i've done on web think need custom directive. i'm unfamiliar angularjs keep banging head on 1 i've come sof help. how can current setup using repeater? or need else?

edit

here's actual finished product need like. again example 6 items it's dynamic there 100+.

<div class="coupon-grid">     <div class="ls">         <div class="row">             <div class="large col col-50">                 <div class="coupon">                     <div class="bg" style="background:url(../img/img1.png) no-repeat; background-size:cover; background-position: center center;"></div>                     <div class="mask purple"></div>                     <div class="content">                         <div class="logo">                             <img src="../img/brand1.png" alt="" />                         </div>                         <p class="miles">2.1 miles</p>                         <p class="num-coupons">3 coupons</p>                     </div>                 </div>             </div>             <div class="col col-50">                 <div class="small row">                     <div class="coupon">                         <div class="bg" style="background:url(../img/img2.png) no-repeat; background-size:cover; background-position:center center;"></div>                         <div class="mask green"></div>                         <div class="content">                             <div class="logo">                                 <img src="../img/brand1.png" alt="" />                             </div>                             <p class="miles">2.1 miles</p>                             <p class="num-coupons">3 coupons</p>                         </div>                     </div>                 </div>                 <div class="small row">                     <div class="coupon">                         <div class="bg" style="background:url(../img/img3.png) no-repeat; background-size:cover; background-position:center center;"></div>                         <div class="mask orange"></div>                         <div class="content">                             <div class="logo">                                 <img src="../img/brand1.png" alt="" />                             </div>                             <p class="miles">2.1 miles</p>                             <p class="num-coupons">3 coupons</p>                         </div>                     </div>                 </div>             </div>         </div>     </div>     <div class="sl">         <div class="row">             <div class="col col-50">                 <div class="small row">                     <div class="coupon">                         <div class="bg" style="background:url(../img/img2.png) no-repeat; background-size:cover; background-position:center center;"></div>                         <div class="mask green"></div>                         <div class="content">                             <div class="logo">                                 <img src="../img/brand1.png" alt="" />                             </div>                             <p class="miles">2.1 miles</p>                             <p class="num-coupons">3 coupons</p>                         </div>                     </div>                 </div>                 <div class="small row">                     <div class="coupon">                         <div class="bg" style="background:url(../img/img3.png) no-repeat; background-size:cover; background-position:center center;"></div>                         <div class="mask orange"></div>                         <div class="content">                             <div class="logo">                                 <img src="../img/brand1.png" alt="" />                             </div>                             <p class="miles">2.1 miles</p>                             <p class="num-coupons">3 coupons</p>                         </div>                     </div>                 </div>             </div>             <div class="large col col-50">                 <div class="coupon">                     <div class="bg" style="background:url(../img/img1.png) no-repeat; background-size:cover; background-position: center center;"></div>                     <div class="mask purple"></div>                     <div class="content">                         <div class="logo">                             <img src="../img/brand1.png" alt="" />                         </div>                         <p class="miles">2.1 miles</p>                         <p class="num-coupons">3 coupons</p>                     </div>                 </div>             </div>         </div>     </div> </div> 

you can use angular's ng-if directive.

so can this:

<div ng-if="item.b.length == 1">    use layout </div> 

i hope makes sense. perhaps post rest of code, including ng-repeater. way might able fit in ng-if directive.

edit:

here simple example of ng-if directive.

index.html

<html ng-app="bam" ng-controller="bamcontroller"> <head> </head> <body>     <div ng-repeat="member in members">         <div ng-if="member.name != 'dennis'">             well, hello, {{member.name}}.         </div>     </div>      <script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.3.14/angular.js"></script>     <script src="js/app.js"></script> </body> </html> 

app.js

var bam = angular.module('bam', []);  bam.controller('bamcontroller', ['$scope', function($scope){     $scope.members = [         {             name: "will",             age: 32         },         {             name: "dennis",             age: 30         }     ]; }]); 

Comments

Popular posts from this blog

Email notification in google apps script -

c++ - Difference between pre and post decrement in recursive function argument -

javascript - IE11 incompatibility with jQuery's 'readonly'? -