1

有这个例子: 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 提供程序不起作用。

4

0 回答 0