使用 ScrollStrategy 声明式创建 Overlay
Declarative creation of an Overlay with ScrollStrategy
TL,DR; scroll strategy be used when creating a CdkConnectedOverlay 怎么才能声明?
详情; CdkConnectedOverlay 是一个促进声明式创建覆盖的指令。
它提供numerous @Input()
属性,其中大部分是直观的。例如:
<ng-template cdkConnectedOverlay
cdkConnectedOverlayOpen="true"
cdkConnectedOverlayOffsetX="0"
cdkConnectedOverlayOffsetY="0">
<span>I'm an overlay</span>
</ng-template>
一个属性定义一个scroll strategy:
@Input('cdkConnectedOverlayScrollStrategy')
scrollStrategy: ScrollStrategy
Strategy to be used when handling scroll events while the overlay is
open.
然而,在以声明方式创建叠加层时如何定义滚动策略尚不清楚。
源代码 (material2/src/cdk/overlay/overlay-directives.ts) 提供了一点见解:
/** Strategy to be used when handling scroll events while the overlay is open. */
@Input('cdkConnectedOverlayScrollStrategy') scrollStrategy: ScrollStrategy =
this._scrollStrategy();
显然,可以提供一个策略,但与其他属性不同的是,它被分配了一个值this._scrollStrategy();
。
你可以通过这个引入不同的滚动策略。
@Input('cdkConnectedOverlayScrollStrategy') scrollStrategy: ScrollStrategy = this.scrollStrategies.block();
我不知道这是否是最佳方式,但为了帮助解决问题。这就是我所做的:
scrollStrategy: ScrollStrategy;
constructor (private sso: ScrollStrategyOptions) {
this.scrollStrategy = sso.<select-your-strategy>();
}
然后在视图中您只需要
<ng-template cdkConnectedOverlay
cdkConnectedOverlayOpen="true"
cdkConnectedOverlayOffsetX="0"
cdkConnectedOverlayOffsetY="0"
[cdkConnectedOverlayScrollStrategy]="scrollStrategy">
<span>I'm an overlay</span>
</ng-template>
TL,DR; scroll strategy be used when creating a CdkConnectedOverlay 怎么才能声明?
详情; CdkConnectedOverlay 是一个促进声明式创建覆盖的指令。
它提供numerous @Input()
属性,其中大部分是直观的。例如:
<ng-template cdkConnectedOverlay
cdkConnectedOverlayOpen="true"
cdkConnectedOverlayOffsetX="0"
cdkConnectedOverlayOffsetY="0">
<span>I'm an overlay</span>
</ng-template>
一个属性定义一个scroll strategy:
@Input('cdkConnectedOverlayScrollStrategy')
scrollStrategy: ScrollStrategy
Strategy to be used when handling scroll events while the overlay is open.
然而,在以声明方式创建叠加层时如何定义滚动策略尚不清楚。
源代码 (material2/src/cdk/overlay/overlay-directives.ts) 提供了一点见解:
/** Strategy to be used when handling scroll events while the overlay is open. */
@Input('cdkConnectedOverlayScrollStrategy') scrollStrategy: ScrollStrategy =
this._scrollStrategy();
显然,可以提供一个策略,但与其他属性不同的是,它被分配了一个值this._scrollStrategy();
。
你可以通过这个引入不同的滚动策略。
@Input('cdkConnectedOverlayScrollStrategy') scrollStrategy: ScrollStrategy = this.scrollStrategies.block();
我不知道这是否是最佳方式,但为了帮助解决问题。这就是我所做的:
scrollStrategy: ScrollStrategy;
constructor (private sso: ScrollStrategyOptions) {
this.scrollStrategy = sso.<select-your-strategy>();
}
然后在视图中您只需要
<ng-template cdkConnectedOverlay
cdkConnectedOverlayOpen="true"
cdkConnectedOverlayOffsetX="0"
cdkConnectedOverlayOffsetY="0"
[cdkConnectedOverlayScrollStrategy]="scrollStrategy">
<span>I'm an overlay</span>
</ng-template>