微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

angularjs – 如何在ng-repeat中显示元素一次

我需要按价格循环查看列表顺序,一旦价格不存在,我就会显示一条不可用的消息,但我不想为每个空元素显示它.我正在使用角度1.2

<div ng-repeat="item in list | orderBy: 'cost'">

  <div ng-if="cost == 0 and not already shown">Sorry the following are unavailable</div>
  <div>...my item here...</div>
<div>

解决方法

您可以有条件地显示两个跨度 – 一个是0(您的’不可用’消息),另一个是其他任何东西.

<ul>
  <li ng-repeat="d in newData track by $index">
    <span ng-show="d > 0">{{d}}</span>
    <span ng-show="d === 0">Not Available</span>
  </li>
</ul>

数据可以通过一个函数传递给第一个之后的所有0:

$scope.data = [1,2,3,1,2]
  $scope.pullDupes = function(array) {
    var newArray = [];
    var zero;
    for(var i = 0; i < array.length; i++) {
      if (array[i] !== 0) {
        newArray.push(array[i])
      }
      if (array[i] === 0 && !zero) {
        zero = true;
        newArray.push(array[i])
      } 
    }
    return newArray;
  }
  $scope.newData = $scope.pullDupes($scope.data);

Plunker

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。

相关推荐