订阅cdk滚动策略事件

时间:2019-01-07 21:57:07

标签: angular overlay cdk

我正在创建一个生成cdk覆盖的服务。我正在尝试做的是找到一种听cdk滚动策略事件的方法。更具体地说,我想知道cdk何时使用“关闭”滚动策略关闭覆盖图。最终目标是创建一个可观察的对象,供消费者用来确定覆盖层是否处于打开状态(有条件地应用css以及不开放)。

稍作搜索后,overlayRef似乎具有_portalOutlet属性,而该属性具有_isDisposed(https://github.com/angular/material2/blob/master/src/cdk/overlay/overlay-ref.ts)属性。看起来像我要找的东西,但是这些当然是私有财产,消费者无法使用。

我无法想象cdk overlay确实没有像这样的公共财产,我真的希望有人指出我的无知。顺便说一下,我正在使用角度5。

1 个答案:

答案 0 :(得分:0)

找到了!

if (dropdownConfig.scrollStrategy === "close") {
  overlayRef.detachments().subscribe( _ => {
    this.isOpen = false;
    this.isOpenSubject.next(false);
  });
}

希望这可以帮助随机灵魂。