【问题标题】:Unable to use ng-if with ng-repeat $index无法将 ng-if 与 ng-repeat $index 一起使用
【发布时间】:2017-03-31 15:29:31
【问题描述】:

我正在尝试使用 ng-if 根据屏幕上存在的过滤器显示一个按钮。我正在使用 md-chips 来显示类别中的过滤器。

HTML:

<div ng-repeat="filter in sc.filters track by $index">
  <md-chips ng-model="filter.value" ng-if="sc.isArray(filter.value)" md-on-remove="sc.filter()"></md-chips>
</div>
<button ng-if="$first" ng-click="sc.newSearch()">clear filters</button>

如果存在第一项,我会跟踪索引并尝试添加按钮。它根本不显示按钮。任何帮助表示赞赏。

【问题讨论】:

    标签: angularjs angularjs-ng-repeat angular-ng-if md-chip


    【解决方案1】:

    $first 应在ng-repeat 语句中使用。在这种情况下,您不想使用$first

    如果您想在第一项存在的情况下添加按钮,为什么不这样做:

    <button ng-if="sc.filters.length" ng-click="sc.newSearch()">clear filters</button>
    

    【讨论】:

    • 一开始没用,我不得不在我的逻辑中稍微调整一下才能让它工作!
    • 你能解释一下你需要调整什么吗?
    • 我的 sc.filters 是一个复杂的对象。所以我必须得到它的子元素长度才能得到我需要的输出。
    • 太棒了,很高兴你能够让它工作!