我如何告诉angularjs暂时停止观察变量?
我正在更新一个长数组,它有复杂的计算,可能需要一两秒钟 当数组发生变化时(即在不同的算法步骤中),angular会不断更新每个中间步骤的ui我如何告诉angularjs暂时停止观察变量?,angularjs,Angularjs,我正在更新一个长数组,它有复杂的计算,可能需要一两秒钟 当数组发生变化时(即在不同的算法步骤中),angular会不断更新每个中间步骤的ui 如何让angular在一两秒钟内停止查找此变量的更改,并在完成后再次开始查看它?如果在HTML标记中使用{{},则无法停止监视。如果您自己创建了$watch,您可以停止它,然后重新启动,如下所示: var watchFunction = ... blahBlah ... var stopWatch = scope.$watch('foo', watchFu
如何让angular在一两秒钟内停止查找此变量的更改,并在完成后再次开始查看它?如果在HTML标记中使用
{{}
,则无法停止监视。如果您自己创建了$watch,您可以停止它,然后重新启动,如下所示:
var watchFunction = ... blahBlah ...
var stopWatch = scope.$watch('foo', watchFunction)
stopWatch()
您可以通过不使用$timeouts在单个摘要中执行所有更新来最小化/消除屏幕闪烁。如果您在HTML标记中使用
{{}
,则无法停止手表。如果您自己创建了$watch,您可以停止它,然后重新启动,如下所示:
var watchFunction = ... blahBlah ...
var stopWatch = scope.$watch('foo', watchFunction)
stopWatch()
您可以通过不使用$timeout在一个摘要中执行所有更新来最小化/消除屏幕闪烁
如何要求angular停止查找此变量的更改
等我看完后再开始看
假设您引用的是控制器作用域变量和视图之间的双向数据绑定,一种解决方案是在控制器变量的作用域之外进行计算,然后将该变量分配给作用域。这样,在进行计算的“第二或第二个”期间,不会触发变量的摘要循环:
// making copy so we are not passing by reference (array or object)
var localCopyOfVar = angular.copy( $scope.complexArray );
// do complex stuff with localCopyOfVar
// ...
// assign finished work back onto scope variable
$scope.complexArray = localCopyofVar;
如何要求angular停止查找此变量的更改
等我看完后再开始看
假设您引用的是控制器作用域变量和视图之间的双向数据绑定,一种解决方案是在控制器变量的作用域之外进行计算,然后将该变量分配给作用域。这样,在进行计算的“第二或第二个”期间,不会触发变量的摘要循环:
// making copy so we are not passing by reference (array or object)
var localCopyOfVar = angular.copy( $scope.complexArray );
// do complex stuff with localCopyOfVar
// ...
// assign finished work back onto scope variable
$scope.complexArray = localCopyofVar;
通过引入新的$scope变量和
ng show
尝试隐藏UI部分,直到完成所有步骤,然后通过引入新的$scope变量和ng show
尝试隐藏UI部分,直到完成所有步骤