尝试根据模型值(true,false)和ng-show
切换div。与setTimeout
一起,它不再起作用。是什么原因?
<div ng-app>
<div ng-controller="Ctrl">
<div ng-show="abc">Div 1</div>
<div ng-show="abc">Div 2</div>
</div>
</div>
function Ctrl($scope) {
setTimeout( function() {
alert( "yeah" );
$scope.abc = true;
}, 1000 );
}
请参阅此fiddle。
答案 0 :(得分:1)
setTimeout
不会触发摘要周期。您应该使用Angular的$timeout
服务。
function Ctrl($scope, $timeout) {
$timeout( function() {
alert( "yeah" );
$scope.abc = true;
}, 1000 );
}
答案 1 :(得分:1)
使用$timeout
代替,setTimeout
不强制摘要,因为它不是有角度的,因此有角度不知道有什么变化,$timeout
调用$scope.$apply()
自动,从而通知观察者变化。