一. 显示和隐藏搜索组件
显示搜索组件就是在原来的界面上又跳出一个新的组件,这个可以用material cdk中的overlay来实现。
简单地来说就是:
- 用注入的Overlay实例的create方法创建OverlayRef实例。
- 利用ComponentPortal创建动态组件,赋值给panelPortal对象。
- 最后把panelPortal和overlayRef用attach方法结合起来。
showOverlayPanel() {
this.hideOverlayPanel();
// 确定overlay显示的位置
const positionStrategy = this.overlay.position()
.flexibleConnectedTo(this.connectedRef || this.defalutRef)
.withPositions([{
originX: 'start',
originY: 'bottom',
overlayX: 'start',
overlayY: 'top'
}]).withLockedPosition(true);
// 用工厂方法指定overlay实例
this.overlayRef = this.overlay.create({
hasBackdrop: true,
positionStrategy,
scrollStrategy: this.overlay.scrollStrategies.reposition()
});
const panelPortal = new ComponentPortal(WySearchPanelComponent, this.viewContainer