javascript - Ng-Repeat,如何测试最后一个 ng-show 元素

标签 javascript angularjs ionic-framework angularjs-ng-repeat ng-show

我不是要为 ng-repeat 的最后一个元素添加不同的类。

我有数据要显示:

$scope.sizes = [{name:XS,available:true},{name:S,available:true},{name:M,available:false},{name:L,available:true},{name:XL,available:false}];

我想显示包含 true 的数据范围,即将上面显示为“XS → L”(注意遗漏了 M 选项)。

我想到的最好的方法是使用 ng-repeat:

<span ng-repeat="size in sizes track by $index"
                      ng-init="sizeIndex = $index"
                      ng-show="size.available == true && (sizeIndex == 0  || sizeIndex == (sizes.length -1))">
                    {{size.short}}<span ng-show="sizeIndex ==0"> → </span>
                </span>

正如预期的那样,这失败了,因为可用尺寸 XL == false,如果尺寸 XS 不可用,它将不起作用。

有没有我没有想到的显示逻辑排列?或者是否有一种“正确”的方法来测试元素是否是列表中显示的最后一个(或第一个)?

最佳答案

如果您按可用过滤,那么一个简单的$first n $last 就可以了

  <li class="animate-repeat" ng-repeat="size in sizes | filter: {available:true}">
   <div ng-show="$first">{{size.name}}</div>
    <div ng-show="$last">{{size.name}}</div>
  </li>

演示 https://plnkr.co/edit/QHIKrUOudSYpczWuVdCe?p=preview这是 Angular 文档示例的一个分支

关于javascript - Ng-Repeat,如何测试最后一个 ng-show 元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38835557/

相关文章:

javascript - 在 Angular 工厂上使用套接字

angularjs - 禁用或隐藏选定的 ng-options angularjs

javascript - 如何在 AngularJS 中实现图像不能通过浏览器 URL 拖动的图像限制?

javascript - Angularjs 使用下拉列表过滤数据

angular - Ionic3 - 自定义组件中的模板解析错误

javascript - 如何在javascript中动态更改对象名称?

java - 有什么方法可以查看网站上的隐藏内容或隐藏的云端链接?

javascript - AngularJS - 配置服务和 $routeProvider

javascript - 无法获取动态 document.getElementById 值

javascript - angularjs动态改变页脚