在AngularJS中directive
的link
阶段,如果去操作DOM时可能会获取到错误的数据。比如,编写相对视窗固定的组件时,在link
阶段可能无法获取到元素的正确初始偏移位置。在这种情形中,只要借助与$timeout
,将操作DOM的相关数据加入event loop
,等待DOM的渲染完成后即可做后续的操作。
|
|
$timeout
函数返回一个Promise
对象,意味着可以在handler
处理完成后执行一些操作。例如,使用一个flag来标记
是否第一个操作:
|
|
参考:
Quick notes
在AngularJS中directive
的link
阶段,如果去操作DOM时可能会获取到错误的数据。比如,编写相对视窗固定的组件时,在link
阶段可能无法获取到元素的正确初始偏移位置。在这种情形中,只要借助与$timeout
,将操作DOM的相关数据加入event loop
,等待DOM的渲染完成后即可做后续的操作。
|
|
$timeout
函数返回一个Promise
对象,意味着可以在handler
处理完成后执行一些操作。例如,使用一个flag来标记
是否第一个操作:
|
|
参考: