Angularjs 启动功能时,ng显示不改变

Angularjs 启动功能时,ng显示不改变,angularjs,Angularjs,有人能解释为什么spinerChange()函数不能正常工作吗 点击我! var myApp=angular.module('myApp',[]); myApp.controller('naujienoscontroller',函数($scope){ var状态=真; $scope.spiner=状态; $scope.spinerButtonChange=函数(){$scope.spiner=!$scope.spiner;}; 函数spinerChange(){ setTimeout(函数()

有人能解释为什么spinerChange()函数不能正常工作吗


点击我!
var myApp=angular.module('myApp',[]);
myApp.controller('naujienoscontroller',函数($scope){
var状态=真;
$scope.spiner=状态;
$scope.spinerButtonChange=函数(){$scope.spiner=!$scope.spiner;};
函数spinerChange(){
setTimeout(函数(){alert(“为什么spiner不解除锁定”);$scope.spiner=false;},3000);
log($scope.spiner);
};
spinerChange();
});

因为javascript
setTimeout
是angularjs范围内不会触发的事件,所以angularjs不知道范围外的更改

有一种实现方法是使用
$timeout
而不是
setTimeout
,如下所示

不要忘记将
$timeout
作为

myApp.controller('naujienosControler', function ($scope, $timeout) {....
这是


还有另一种选择是使用
$scope.$appy()

function spinerChange(){    
    setTimeout(function(){        
        $scope.$apply(function() {
            $scope.spiner = !$scope.spiner;
        });    
    }, 3000);
    };    
    spinerChange();
});

因为javascript
setTimeout
是angularjs范围内不触发的事件,所以angularjs不知道范围外的更改

有一种实现方法是使用
$timeout
而不是
setTimeout
,如下所示

不要忘记将
$timeout
作为

myApp.controller('naujienosControler', function ($scope, $timeout) {....
这是


还有另一种选择是使用
$scope.$appy()

function spinerChange(){    
    setTimeout(function(){        
        $scope.$apply(function() {
            $scope.spiner = !$scope.spiner;
        });    
    }, 3000);
    };    
    spinerChange();
});

因为javascript
setTimeout
是angularjs范围内不触发的事件,所以angularjs不知道范围外的更改

有一种实现方法是使用
$timeout
而不是
setTimeout
,如下所示

不要忘记将
$timeout
作为

myApp.controller('naujienosControler', function ($scope, $timeout) {....
这是


还有另一种选择是使用
$scope.$appy()

function spinerChange(){    
    setTimeout(function(){        
        $scope.$apply(function() {
            $scope.spiner = !$scope.spiner;
        });    
    }, 3000);
    };    
    spinerChange();
});

因为javascript
setTimeout
是angularjs范围内不触发的事件,所以angularjs不知道范围外的更改

有一种实现方法是使用
$timeout
而不是
setTimeout
,如下所示

不要忘记将
$timeout
作为

myApp.controller('naujienosControler', function ($scope, $timeout) {....
这是


还有另一种选择是使用
$scope.$appy()

function spinerChange(){    
    setTimeout(function(){        
        $scope.$apply(function() {
            $scope.spiner = !$scope.spiner;
        });    
    }, 3000);
    };    
    spinerChange();
});
注入并使用,因为您希望angular在执行操作后执行
摘要

myApp.controller('naujienosControler', function ($scope, $timeout){   
    $timeout(function(){ $scope.spiner = false; }, 3000});
}
编辑(感谢lechariotdor):使用“angularjs world”包装器始终是一个很好的实践,因为它们运行
$apply
方法,在您的范围和“同步”上执行
摘要发生更改的模型。

注入并使用,因为您希望在执行操作后执行
摘要

myApp.controller('naujienosControler', function ($scope, $timeout){   
    $timeout(function(){ $scope.spiner = false; }, 3000});
}
编辑(感谢lechariotdor):使用“angularjs world”包装器始终是一个很好的实践,因为它们运行
$apply
方法,在您的范围和“同步”上执行
摘要发生更改的模型。

注入并使用,因为您希望在执行操作后执行
摘要

myApp.controller('naujienosControler', function ($scope, $timeout){   
    $timeout(function(){ $scope.spiner = false; }, 3000});
}
编辑(感谢lechariotdor):使用“angularjs world”包装器始终是一个很好的实践,因为它们运行
$apply
方法,在您的范围和“同步”上执行
摘要发生更改的模型。

注入并使用,因为您希望在执行操作后执行
摘要

myApp.controller('naujienosControler', function ($scope, $timeout){   
    $timeout(function(){ $scope.spiner = false; }, 3000});
}
编辑(感谢lechariotdor):使用“angularjs world”包装器始终是一个很好的实践,因为它们运行
$apply
方法,该方法在您的范围上执行
摘要,并将模型与发生的更改“同步”。

使用:-

$timeout(function(){ alert("Why spiner dont disapear?????????"); $scope.spiner = false;}, 500); 
使用:-

使用:-

使用:-


我想补充一点,在有角度“包装器”的情况下使用角度“包装器”(超时、$window、$document,…)是一种角度最佳实践,这样可以避免类似的奇怪事情。@lechariotdor-我已经添加了这些信息..谢谢。我想补充一点,在有角度“包装器”的情况下使用角度“包装器”是一种角度最佳实践($timeout,$window,$document,…)这样奇怪的事情是可以避免的。@lechariotdor-我已经添加了这些信息。。谢谢。我想补充的是,当存在角度“包装器”时,使用角度“包装器”是一种角度最佳实践($timeout,$window,$document,…)这样奇怪的事情是可以避免的。@lechariotdor-我已经添加了这些信息。。谢谢。我想补充的是,在有角度的“包装器”(timeout,$window,$document,…)存在时使用角度的“包装器”是一种角度最佳实践,这样奇怪的事情是可以避免的。@lechariotdor-我已经添加了这些信息。。谢谢。请检查此项“”“也检查一下”“也检查一下”“也检查一下”