3

当检查上一个选择时,我尝试显示一个选择。

<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">

我遍历集合并创建了许多选择,这些选择中有集合中的项目。

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

我想用两个条件显示/隐藏选择的父 div:

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

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

ngModel 的例子
(来源:noelshack.com

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

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

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

$index === 0

但这里没有:

$parent.list[$index].nom
4

2 回答 2

2

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

<div ng-repeat="item in collection track by $index>
于 2016-02-05T16:24:51.127 回答
1

我认为应该是:

<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.

于 2016-02-05T17:01:57.370 回答