一些问题:
在处理角度指令时,您通常不需要使用{{...}}
语法,只需使用实际值即可。所以而不是:
data-ng-click="sw='{{test.name}}'"
利用:
data-ng-click="sw = test.name"
(请参阅下一点,了解为什么这还不够)
ng-repeat
使用它自己的范围和包含,所以上面将设置sw
在错误的范围内,使用:
data-ng-click="$parent.sw = test.name"
你不能用 来构建ng-switch-when
,ng-repeat
试试ng-show/hide
吧:
<div ng-repeat="test in tests" ng-show="sw == test.name">
演示:http: //jsbin.com/uxobot/1/
但总而言之,我认为ng-switch/ng-repeat
第二个 div 没有必要。以下具有相同的效果,并且可能更具语义:
<div ng-controller="MyCtrl">
<div class="click">
<div ng-repeat="test in tests" data-ng-click="$parent.active = test">
{{test.name}}
</div>
</div>
<div class="switch">
{{active.text}}
</div>
</div>
演示:http: //jsbin.com/elufow/1/