Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/angularjs/21.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
我如何告诉angularjs暂时停止观察变量?_Angularjs - Fatal编程技术网

我如何告诉angularjs暂时停止观察变量?

我如何告诉angularjs暂时停止观察变量?,angularjs,Angularjs,我正在更新一个长数组,它有复杂的计算,可能需要一两秒钟 当数组发生变化时(即在不同的算法步骤中),angular会不断更新每个中间步骤的ui 如何让angular在一两秒钟内停止查找此变量的更改,并在完成后再次开始查看它?如果在HTML标记中使用{{},则无法停止监视。如果您自己创建了$watch,您可以停止它,然后重新启动,如下所示: var watchFunction = ... blahBlah ... var stopWatch = scope.$watch('foo', watchFu

我正在更新一个长数组,它有复杂的计算,可能需要一两秒钟

当数组发生变化时(即在不同的算法步骤中),angular会不断更新每个中间步骤的ui


如何让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部分,直到完成所有步骤