Javascript 使用$timeout强制输入角度摘要
在使用Angular自身之外的事件时,强制使用Angular摘要的最佳方法是什么?例如,在jqLite容器中加载图像时,我发现自己正在这样做:Javascript 使用$timeout强制输入角度摘要,javascript,angularjs,rendering,render,Javascript,Angularjs,Rendering,Render,在使用Angular自身之外的事件时,强制使用Angular摘要的最佳方法是什么?例如,在jqLite容器中加载图像时,我发现自己正在这样做: $img.on('load', function () { $timeout(function () { // Force digest $scope.isLoaded = true; }); }); 这是我发现自己经常使用的一种模式。然而,它感觉非常脏(就像一个肮脏的黑客,啊)。但是,使用可能会触发错误。我知道我可以,
$img.on('load', function () {
$timeout(function () { // Force digest
$scope.isLoaded = true;
});
});
这是我发现自己经常使用的一种模式。然而,它感觉非常脏(就像一个肮脏的黑客,啊)。但是,使用可能会触发错误。我知道我可以,但那感觉同样肮脏
那么,要尽快获得对DOM的更改,正确的方法是什么?您可以使用
$scope.$evalAsync()
。这还可能为您提供更好的性能,因为操作可能在已启动的摘要中执行
参考资料:“我发现自己使用了很多”。理想情况下,你不需要经常使用它,所以也许你的应用程序设计可以在第一时间得到改进。@dfsq是的,我知道这个短语有点含糊不清。“很多”通常是指每当我使用某种外部事件系统时,比如(jqLite)DOM事件。如果我正在阅读,那么这正是正确的用例。只是感觉还是很难看。