angularjs – 离子动态列表分隔符

前端之家收集整理的这篇文章主要介绍了angularjs – 离子动态列表分隔符前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我现在已经对这个问题感到困惑了,所以我希望你能让我走向正确的方向.

我的角工厂返回一个看起来像这样的对象@H_403_2@

[{
    name:"Fall",year:"20xx",id: some_id_#
},....]

这是一个学期的列表,每个学期的对象包含名称,年份和学期编号.
我在我的UI框架中使用ion,我想设置我的HTML输出看起来像这样…@H_403_2@

2012
秋季
弹簧
2013
冬季
弹簧
2014
等等
等等@H_403_2@

每年是一个列表分隔符.我的HTML目前看起来像这样@H_403_2@

<ion-list show-delete="data.showDelete">
    <!-- I WAN TO CHANGE THIS TO BE A DYNAMIC HEADER ADDED FOR EACH NEAR YEAR-->
    <ion-item class="item-divider">
        Semesters
    </ion-item>

    <ion-item ng-show="semesters.length == 0">
        No semesters yet!
    </ion-item>
    <ion-item class="item-dark item-icon-right" href="#/app/class-list/{{semester.id}}/{{semester.name}}/{{semester.year}}" ng-repeat="semester in semesters">
        <ion-delete-button class="ion-ios7-trash-outline"
                   ng-click="deleteSemester(semester)">
        </ion-delete-button>
        {{semester.name}} {{semester.year}}
        <i class="icon ion-ios7-arrow-forward"></i>
    </ion-item>
</ion-list>

我不喜欢用逻辑混乱我的观点,因为它属于控制器,但我不知道如何去做,aha.@H_403_2@

多谢你们!@H_403_2@

我不知道这是否是最好的方式,但是我建立了一个可以执行此操作的CodePen:

拿一份原始清单(这将是你的真实数据)
>通过为唯一的起始字母创建其他项目来修改列表
>在视图中,我们看到我们的数据是否是一封信,如果是,则将其视为列表分隔符@H_403_2@

这有点像他们的一支笔(http://codepen.io/ionic/pen/uJkCz).对我来说感觉有些错误,但似乎运作良好.这是控制器部分:@H_403_2@

.controller('RootCtrl',function($scope) {

  //orig data
  var list = [];
  list.push({name:"Gary"});
  list.push({name:"Gosh"});
  list.push({name:"Ray"});
  list.push({name:"Sam"});
  list.push({name:"Sandy"});

  $scope.list = [];
  var lastChar = '';
  for(var i=0,len=list.length; i<len; i++) {
    var item = list[i];

    if(item.name.charAt(0) != lastChar) {
      $scope.list.push({name:item.name.charAt(0),letter:true});
      lastChar = item.name.charAt(0);
    }
    $scope.list.push(item);

  }
})

然后视图检查数据是否是一个人对一个信件.再次,这感觉有点跛脚,但…@H_403_2@

<ion-list type="list-inset">
  <ion-item ng-repeat="person in list" ng-class="person.letter? 'item-divider':''">
    {{person.name}}
  </ion-item>
</ion-list>

你可以在这里运行:http://codepen.io/cfjedimaster/pen/HqrBf@H_403_2@

猜你在找的Angularjs相关文章