Angular 订阅cdk滚动策略事件

Angular 订阅cdk滚动策略事件,angular,overlay,angular-cdk,Angular,Overlay,Angular Cdk,我正在创建一个生成cdk覆盖的服务。我想做的是找到一种收听cdk滚动策略事件的方式。更具体地说,我想知道cdk何时使用“关闭”滚动策略关闭覆盖。最终目标是创建一个可观察的,消费者可以使用它来确定覆盖是否是开放的(有条件地应用css什么的) 在进行少量搜索之后,overlayRef似乎有一个属性_portalOutlet,它有一个属性_isDisposed()。这看起来像是我在寻找的,但当然这些是私人财产,不提供给消费者 我无法想象cdk overlay真的没有这样的公共属性,我真的希望有人指出我

我正在创建一个生成cdk覆盖的服务。我想做的是找到一种收听cdk滚动策略事件的方式。更具体地说,我想知道cdk何时使用“关闭”滚动策略关闭覆盖。最终目标是创建一个可观察的,消费者可以使用它来确定覆盖是否是开放的(有条件地应用css什么的)

在进行少量搜索之后,overlayRef似乎有一个属性_portalOutlet,它有一个属性_isDisposed()。这看起来像是我在寻找的,但当然这些是私人财产,不提供给消费者

我无法想象cdk overlay真的没有这样的公共属性,我真的希望有人指出我的无知。顺便说一下,我用的是angular 5。

找到了

if (dropdownConfig.scrollStrategy === "close") {
  overlayRef.detachments().subscribe( _ => {
    this.isOpen = false;
    this.isOpenSubject.next(false);
  });
}
希望这对一个随机的灵魂有所帮助。

你有没有看这个?我试过这样的东西,但似乎不起作用。这件事永远不会被发现。