我是角度框架的新手。这是我的情况,我想在一段时间后更改$ scope.variable,所以我使用了javascript setTimeout方法。
setTimeout
$scope.variable = 'Previous'; setTimeout(function(){ $scope.variable='NEXT'; },3000);
此代码对我不起作用。我曾经$apply()使这段代码起作用。
$apply()
后来我才知道angular本身有一个$ timeout服务,可以完成相同的工作。
$scope.variable = 'Previous'; $timeout(function () { $scope.variable = 'NEXT'; }, 2000);
如何比较$timeoutJavaScript服务的性能setTimeout?
$timeout
为什么我们应该使用$timeout而不是setTimeout??
请给我一些示例和使用它的理由,以显示性能。
谢谢 :)
在某些情况下,需要执行某种超时操作,而我们经常使用JavaScript setTimeout()函数来实现这一目的。
setTimeout()
但是,如果setTimeout()在AngularJS应用程序中使用,则还需要使用$scope.$apply()以确保的任何更改scope都将反映在其他地方(即)中的数据绑定view。
$scope.$apply()
scope
view
AngularJS提供了一个方便的包装为这样的:$timeout()-它确实$apply()对我们没有$apply改变。
AngularJS
$timeout()
$apply
关于 性能 。
如果您要$timeout用来创建本质上是间隔的内容,请不要使用它。如果您的应用程序很大,那么$apply还会触发一个$digest您可能不希望发生的循环,这肯定会降低性能。
$digest