ng-show 中 $index 的可访问性

Accessibility of $index in ng-show

我尝试在选中前一个 select 时显示 select。

<div ng-repeat="item in collection">

<div ng-show="$index === 0 || $parent.list[$index].nom">
    <select ng-model="$parent.list[$index].nom" ng-options="..."></select>
</div>
  1. <div ng-repeat="item in collection">

我遍历集合并创建许多 select 集合中有项目。

  1. <div ng-show="$index === 0 || $parent.list[$index].nom">

我想 display/hide select 的父 div 有两个条件:

  1. 如果索引等于0我显示div(先显示select)
  2. 如果当前 ngModel 包含 nom
  3. ,我会显示 div
  1. <select ng-model="$parent.list[$index].nom" ng-options="...">

我放了一个动态 ngModel,其中每个 select 都有自己的模型,例如:


(来源:noelshack.com

测试示例:我在 select 中有三个选项,所以我想给会员机会选择 select 中的每个选项。

如果会员选择 select 1 选项,第二个 select 显示,如果他 select 选择第二个 select 第三个 select 显示但没有更多...

这里的问题: 指令 ngShow 中的 $index 似乎在这种情况下已知:

$index === 0

但这里没有 :

$parent.list[$index].nom

您必须在 ng-repeat 中包含 track by $index...

<div ng-repeat="item in collection track by $index>

我觉得应该是:

<div ng-show="$index === 0 || $parent.list[$index - 1].nom">
    <select ng-model="$parent.list[$index].nom" ng-options="el for el in els"></select>
</div>

请注意,您要参考 list 中的 上一个 项,因此 $index - 1