1
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

cdkConnectedOverlay で、パネルを展開する

Last updated at Posted at 2022-11-21

背景

ボタンクリックでパネルを展開するコードを書いてた時に、「Angular の機能で簡単に書けるよ〜」と教えてもらったので、cdkConnectedOverlay についてまとめてみる。

cdkConnectedOverlay について

Overlay の Directive の一つ。

FlexibleConnectedPositionStrategy を使用してオーバーレイの宣言的な作成を容易にするディレクティブ

いい感じにボタンクリックでパネルを作ってくれます。

スクリーンショット 2022-11-21 22.51.28.png

コード例

sample.html
<!-- オーバーレイの起点 -->
<div
  cdkOverlayOrigin
  (click)         = "open = !open"
  #trigger        = "cdkOverlayOrigin"
>
</div>

<!-- パネルを展開する部分 -->
<ng-template
  cdkConnectedOverlay
  cdkConnectedOverlayBackdropClass = "cdk-overlay-transparent-backdrop"
  [cdkConnectedOverlayOrigin]      = "trigger"
  [cdkConnectedOverlayOpen]        = "open"
  [cdkConnectedOverlayHasBackdrop] = "true"
  (backdropClick)                  = "open = false"
>
</ng-template>
sample.ts
export class AAAComponent {
  open = false
}

backdrop を使用することで、パネル範囲外クリック時にクローズできる。

参考

1
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?