Angularjs 检测图像在屏幕上完成渲染的时间

Angularjs 检测图像在屏幕上完成渲染的时间,angularjs,image,rendering,Angularjs,Image,Rendering,这基本上是我的HTML。它是响应性设计的一部分,因此我不能依赖固定的宽度/高度: <img ng-src="{{imageSrc}}" /> $scope.imageSrc的值在我的控制器内更改,视图正在正确更新 但是:在图像完成渲染时,我需要获取其clientWidth和clientHeight属性 那么我如何通过编程来检测呢 图像已完成加载和更新 视图已使用渲染图像完全更新 不使用奇怪的超时吗?另外两个问题将对您有所帮助。 这将通过load事件检测加载。 并将通过reque

这基本上是我的HTML。它是响应性设计的一部分,因此我不能依赖固定的宽度/高度:

<img ng-src="{{imageSrc}}" />

$scope.imageSrc
的值在我的控制器内更改,视图正在正确更新

但是:在图像完成渲染时,我需要获取其
clientWidth
clientHeight
属性

那么我如何通过编程来检测呢

  • 图像已完成加载和更新
  • 视图已使用渲染图像完全更新

  • 不使用奇怪的超时吗?

    另外两个问题将对您有所帮助。 这将通过
    load
    事件检测加载。

    并将通过
    requestAnimationFrame

    检测渲染,我认为onload中的$timeout(,0)应该可以实现2的功能。它可以工作,但使用这种类型的“超时黑客”似乎很奇怪,我不认为这是一种黑客行为。Javascript是一个线程,所以将timeout与0一起使用是完全可以的,这样代码的行为非常稳定。好吧,至少我是这么认为的。我会检查这个的。是的,这很好。。。我甚至可以在第一个requestAnimationFrame回调中获得渲染图像的宽度/高度