【问题标题】:Angular ng-repeat with array length condition具有数组长度条件的角度 ng-repeat
【发布时间】: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。这似乎效率低下。

谢谢。

【问题讨论】:

标签: javascript html angularjs angularjs-ng-repeat


【解决方案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>

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2013-08-06
    • 1970-01-01
    • 1970-01-01
    • 2017-02-21
    • 2016-03-28
    • 2014-02-18
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多