更改i.typ后,ng-switch不会在以下代码中更新。也许这与ng-repeat oustide开关有关?在页面重新加载时它可以工作,但不能在模型更改时使用。
<div id="sceneCtrl" ng-controller="SceneController">
<transform id="{{'annotation'+i.ID}}" ng-repeat="i in vm.sharedService.SceneAnnotations">
<group ng-switch on="{{i.typ}}">
<transform ng-switch-when="0" > [subtree 0...] </transform>
<transform ng-switch-when="1" > [subtree 1...] </transform>
</group>
</transform>
</div>
答案 0 :(得分:2)
从on="{{i.typ}}"
中删除大括号。
请改为尝试:
<group ng-switch on="i.typ">
答案 1 :(得分:2)
我把一个ng-switch看起来像ng-repeat里面的例子放在一起。为了使示例工作,我确实替换了你的变量,但想法和语法是完全相同的:
<div ng-repeat="player in myPlayers">
<!-- just so you can see the repeat is working normally: -->
Player: <span class="playername" ng-bind="player.name"></span>
<!-- here is the switch: -->
<div ng-switch on="player.gameRole">
<div ng-switch-when="IT">YOU ARE IT</div>
<div ng-switch-when="NOT IT">This player is NOT it</div>
</div>
<br /><br />
</div>
要查看此消息,请在此处查看一个plunker:http://plnkr.co/edit/0lbqKjlgo1Y8aLNMoGNs?p=preview
关于为什么当变量值发生变化时开关不会改变的另一个问题,可能会出现一些原因。最常见的原因是因为您处于指令或某处“$ scope。$ apply()”未被调用。添加这一行,它应该工作(可能)!
祝你好运!