使用ngZone onStable检查组件是否呈现

时间:2017-10-30 18:50:10

标签: angular zone

我试图在区域稳定后使用ngZone来更新我的分页状态,以便我试图分页的组件将被完全渲染,并且我将从渲染器获得正确的scrollWidth。

Angular Material 2代码中使用它的方式是:

// Update the position once the zone is stable so that the overlay will be fully rendered
// before attempting to position it, as the position may depend on the size of the rendered
// content.
this._ngZone.onStable.asObservable().pipe(first()).subscribe(() => {
  this.updatePosition();
});

我在我的组件中执行相同操作并运行我自己的方法而不是' this.updatePosition()'。这并不能帮助我获得最新的渲染状态,但它仍然运行得太早。

我在这里缺少什么?将ngZone与onStable一起使用的正确方法是什么?

1 个答案:

答案 0 :(得分:1)

// Update the position once the zone is stable so that the overlay will be fully rendered
// before attempting to position it, as the position may depend on the size of the rendered
// content.

let that = this;

that.updatePosition();