当使用Angular本身以外的事件时,在Angular中强制摘要的最佳方法是什么 - 例如在jqLite容器中加载图像时,我发现自己这样做了:
$img.on('load', function () {
$timeout(function () { // Force digest
$scope.isLoaded = true;
});
});
这是我发现自己经常使用的模式。然而它感觉很脏(就像一个黑客,呃)。但是,使用$apply()
可能会触发"digest already in progress" error。我知道我可以check for $scope.$$phase
,但感觉同样很脏。
那么,正确的方式是什么,以尽可能快地获得对DOM的更改?
答案 0 :(得分:0)
您可以改用$scope.$evalAsync()
。这也可能为您提供更好的性能,因为该操作可能在已经启动的摘要中执行。