我试图让下拉列表仅在它们上方的下拉列表中选择了某些内容时才填充。我有人用这样的方法为我指明了正确的起始方向。
<select class="selectLevel0" ng-model='scope1' ng-change='scope1Change()'
ng-options='obj.name for obj in array track by obj.id'>
</select>
<select class="selectLevel1" ng-model="scope2" ng-change='scope2Change()'
ng-options='obj.name for obj in array2 track by obj.id' ng-hide='!scope1'>
</select>
<select class="selectLevel2" ng-model="scope3" ng-change='scope3Change()'
ng-options='obj.name for obj in array3 track by obj.id' ng-hide='!scope2'>
</select>
<select class="selectLevel3" ng-model="scope4" ng-change='scope4Change()'
ng-options='obj.name for obj in array4 track by obj.id' ng-hide='!scope3'>
</select>
<select class="selectLevel4" ng-model="scope5"
ng-options='obj.name for obj in array5 track by obj.id' ng-hide='!scope4'>
</select>
这对于第一轮来说很好 - 在前一个选择了某些内容之前,下面的下拉列表不会填充。棘手的部分是我试图弄清楚是否说我一直选择到第 5 级,然后我重新选择第 2 级。然后我希望第三级出现,4-5 消失。我在想可能像 ng_show="!scope2 || !scope3" (或类似的东西,我传递多个参数),但我似乎无法在角度上得到这样的东西。有没有更好的方法来处理这个问题?