具有数组长度条件的角度 ng-repeat

Posted

技术标签:

【中文标题】具有数组长度条件的角度 ng-repeat【英文标题】:Angular ng-repeat with array length condition 【发布时间】:2014-03-25 17:48:21 【问题描述】:

我希望ng-repeat 仅在photos.length > 1运行

这样做似乎不起作用:

<div ng-repeat="thumb in photos | photos.length > 1">

有什么快速的技巧/优雅的方法可以做到这一点吗?我只需要检查数组长度就可以了。

我不想通过这样做将数组复制到另一个数组

if (oldArray.length > 1)
 newArray = photos;
else
 newArray = [];

...然后在newArray 上执行ng-repeat。这似乎效率低下。

谢谢。

【问题讨论】:

尝试创建自己的过滤器。见***.com/questions/15196161/… 【参考方案1】:

试试:

<div ng-repeat="thumb in photos" ng-if="photos.length > 1"></div>

如果不满足ng-if 条件,这些元素将从DOM 中删除。如需进一步参考,请参阅http://docs.angularjs.org/api/ng/directive/ngIf。

【讨论】:

在访问长度属性之前检查“照片”是否存在也可能会有所帮助,因为“未定义”没有长度属性。例如:ng-if="photos && photos.length > 1" 如何在 ng-repeat 之前和之后有两个 if confition?例如,照片可以是数组或错误,如果类型是字符串,那就是错误,我必须在 ng-repeat 之前检查它,但是我想把条件放在拇指上,说它是否满足特定条件,然后我必须在 ng-repeat 之后运行它...【参考方案2】:

您可以尝试使用 ng -if 指令来检查您描述的条件,例如

<div ng-if='photos.length > 1'> your html here </div>

【讨论】:

以上是关于具有数组长度条件的角度 ng-repeat的主要内容,如果未能解决你的问题,请参考以下文章

角度获取过滤后的 ng-repeat 的长度

angularjs如何在ng-repeat过程中控制字符串长度超过指定长度后面内容以省略号显示

C 语言数组 ( 数组本质 | 数组长度定义 | 数组初始化 | 编译时初始化 | 显式初始化 - 重置内存 )

向量之间的角度 - 只有长度为1的数组可以转换为Python标量

如何在带有ng-repeat的角度js表中使用复选框数组和文本区域/下拉列表数组?

不关注数组长度条件的无限循环