如何将定位策略 ( ConnectedPositionStrategy
) 添加到 Angular CDK 覆盖?
我尝试通过positionStrategy
属性指定它并将其传递给overlay.create()
.
import { Overlay, ConnectedPositionStrategy } from '@angular/cdk/overlay';
// ...
export class MyComponent {
constructor(private overlay: Overlay){}
showOverlay() {
let overlay = this.overlay.create({positionStrategy: ConnectedPositionStrategy});
// ...
}
}
但我得到这个错误:
ERROR in src/app/explore/explore.component.ts(48,40): error TS2345: Argument of type '{ positionStrategy: typeof ConnectedPositionStrategy; }' is not assignable to parameter of type 'OverlayConfig'.
Types of property 'positionStrategy' are incompatible.
Type 'typeof ConnectedPositionStrategy' is not assignable to type 'PositionStrategy'.
Property 'attach' is missing in type 'typeof ConnectedPositionStrategy'.
我错过了什么吗?文档对如何指定定位策略不是很清楚。
这是我的依赖项(从 输出ng version
):
_ _ ____ _ ___
/ \ _ __ __ _ _ _| | __ _ _ __ / ___| | |_ _|
/ △ \ | '_ \ / _` | | | | |/ _` | '__| | | | | | |
/ ___ \| | | | (_| | |_| | | (_| | | | |___| |___ | |
/_/ \_\_| |_|\__, |\__,_|_|\__,_|_| \____|_____|___|
|___/
Angular CLI: 1.6.1
Node: 8.9.0
OS: darwin x64
Angular: 5.1.1
... animations, common, compiler, compiler-cli, core, forms
... platform-browser, platform-browser-dynamic, platform-server
... router, service-worker
@angular/cdk: 5.0.1-2436acd
@angular/cli: 1.6.1
@angular/flex-layout: 2.0.0-beta.12-82ae74c
@angular/material: 5.0.1-2436acd
@angular-devkit/build-optimizer: 0.0.36
@angular-devkit/core: 0.0.22
@angular-devkit/schematics: 0.0.42
@ngtools/json-schema: 1.1.0
@ngtools/webpack: 1.9.1
@schematics/angular: 0.1.11
@schematics/schematics: 0.0.11
typescript: 2.4.2
webpack: 3.10.0
此外,我尝试positionStrategy
通过new
关键字初始化 a ,但现在我不知道将参数传递为什么。