我们可以在 Angular js 中不使用 $apply 来触发 $digest 吗?
Can we trigger $digest without using $apply in Angular js?
当我经历作用域的生命周期时,我发现 $digest
应该被 $apply
调用。但我想知道是否可以在没有 $apply
的情况下启用 $digest
。如果有,缺点是什么
当您调用 $scope.$apply()
函数时,它会调用 $rootScope.$digest()
。因此,摘要循环从 rootScope 开始并调用所有子范围。
您可以使用 $scope.$digest()
调用摘要,但这只会启动子作用域的循环。有时绑定不会正确发生,因为摘要循环不是从根范围开始的。
您可以查看 this 文章以了解摘要循环的工作原理
$scope.$digest()
函数遍历 $scope
对象及其子对象 $scope
中的所有手表(如果有的话)。当 $digest()
遍历手表时,它会为每个手表调用值函数。
$scope.$apply()
函数接受一个函数作为参数执行,然后在内部调用$scope.$digest()
。
当我经历作用域的生命周期时,我发现 $digest
应该被 $apply
调用。但我想知道是否可以在没有 $apply
的情况下启用 $digest
。如果有,缺点是什么
当您调用 $scope.$apply()
函数时,它会调用 $rootScope.$digest()
。因此,摘要循环从 rootScope 开始并调用所有子范围。
您可以使用 $scope.$digest()
调用摘要,但这只会启动子作用域的循环。有时绑定不会正确发生,因为摘要循环不是从根范围开始的。
您可以查看 this 文章以了解摘要循环的工作原理
$scope.$digest()
函数遍历 $scope
对象及其子对象 $scope
中的所有手表(如果有的话)。当 $digest()
遍历手表时,它会为每个手表调用值函数。
$scope.$apply()
函数接受一个函数作为参数执行,然后在内部调用$scope.$digest()
。