我从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,并根据值有条件地显示其中一个。
答案 0 :(得分:1)
在您做出选择之前,最初designer
将是未定义的。所以前两个将不会被渲染我猜。你能用其中一个值初始化它,看看是否有帮助?