我从 jQuery / Backbone 背景来到 Angular,所以我是 Angular 的新手。无论如何,所以我试图根据选择框值显示/隐藏 div。我知道的基本东西。
问题在于,下面的代码块即使<div ng-show="designer">
是 DOM 中的最后一个元素,它也会出现在两个 switch-when 语句之前。移动它没有任何区别。
<select ng-model="designer">
<option value="designerYes">Yes</option>
<option value="designerNo">No</option>
</select>
<div ng-switch on="designer">
<div ng-switch-when="designerYes"...>
<div ng-switch-when="designerNo"...>
<div ng-show="designer">
</div>
我怀疑问题与事件切换和显示事件何时触发有关,但我不确定如何最好地解决或解决问题。关于解决方案的任何想法?
更新:解决方案(至少对我而言)是不要混合使用 ng-switch 和 ng-show。第一个答案是对的。因为 switch 语句不在 DOM 中,所以它们被附加在已经可用的 ng-show div 之后。
这是答案...
<select ng-model="designer">
<option value="designerYes">Yes</option>
<option value="designerNo">No</option>
</select>
<div ng-show="designer == 'designerYes'"...>
<div ng-show="designer == 'designerNo'"...>
<div ng-show="designer">
当进行选择时,这将始终显示第 3 个 DIV,并根据值有条件地显示其他 DIV 之一。