有这个例子: https ://plnkr.co/edit/KssNGRhyLRbRzEN59P4C?p=preview
它使用@angular/materialMdMenu并利用ConnectedPositionStrategy @angular/cdk/overlays
let originWithFallbackPosition = ConnectedPositionStrategy.prototype.withFallbackPosition;
ConnectedPositionStrategy.prototype.withFallbackPosition = function (originPos, overlayPos) {
overlayPos.overlayX = 'start';
if(this._preferredPositions.length) {
return this;
}
return originWithFallbackPosition.apply(this, arguments);
};
但这改变了我想使用继承的原型:
export class MultiMenuPositionStrategy extends ConnectedPositionStrategy {
public withFallbackPosition(originPos: OriginConnectionPosition, overlayPos: OverlayConnectionPosition) {
overlayPos.overlayX = 'start';
if(this._preferredPositions.length) {
return this;
}
return super.withFallbackPosition(originPos, overlayPos);
}
}
但是,我如何注册这个类以在这个菜单中使用?我在 API 中看不到任何注册此自定义 PositionStrategy 的方法,并且使用 NgModule 提供程序不起作用。