Angularjs 带ng显示的角度ng开关不考虑DOM顺序

Angularjs 带ng显示的角度ng开关不考虑DOM顺序,angularjs,Angularjs,我是从jQuery/主干网背景开始学习Angular的,所以我是Angular的新手。无论如何,我尝试根据选择框的值显示/隐藏div。基本的东西我知道 问题在于,对于下面的代码块,即使是DOM中的最后一个元素,它也会显示在switch when语句之前。移动它没有什么区别 <select ng-model="designer"> <option value="designerYes">Yes</option> <option value="des

我是从jQuery/主干网背景开始学习Angular的,所以我是Angular的新手。无论如何,我尝试根据选择框的值显示/隐藏div。基本的东西我知道

问题在于,对于下面的代码块,即使
是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开关和ng显示。第一个答案是对的。因为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">

对
不

当进行选择时,这将始终显示第三个DIV,并根据值有条件地显示其中一个DIV。

最初
设计器在您进行选择之前将是未定义的。所以我猜前两个不会被渲染。您能用其中一个值初始化它并查看是否有帮助吗?

最初
designer
将被取消定义,直到您做出选择。所以我猜前两个不会被渲染。你能用其中一个值初始化它并看看是否有用吗?

你能提供一个JSFIDLE或plunker示例吗?在这种情况下,你可以删除
ng开关on=“designer”
@JonathanPalumbo你说得对。谢谢我会更新它。你能提供一个JSFIDLE或plunker示例吗?在这种情况下,你可以删除
ng开关on=“designer”
@JonathanPalumbo你是对的。谢谢我会更新的。