我的控制器中有以下内容,这是 ng-switch 所依赖的变量:
$scope.currentClock = {state: true};
这就是我用来更改 currentClock.state 值的方法:
<timepanel>
<div id="hour" ng-click="currentClock.state = true">12</div>
<div id="minute" ng-click="currentClock.state = false">00</div>
</timepanel>
我也尝试在 ng-click 中使用一个函数,结果相同,这是(来自我的控制器)中的函数:
$scope.changeClock = function(elm){
$scope.currentClock.state = elm;
}
最后是我的 ng-switch:
<clockcontainer>
<div ng-switch on="currentClock.state">
<minuteclock ng-switch-when=false></minuteclock>
<hourclock ng-switch-when=true></hourclock>
</div>
<clockcontainer>
问题是:小时时钟指令显示为默认值,因为 currentClock.state 为真,但当我单击分钟 div 时,将 currentClock.state 设置为假,而不是小时时钟消失,分钟时钟取而代之,它得到附加了分钟时钟指令,当我再次点击小时 div 时,现在有两个小时时钟指令