возможность наложения cdk по умолчанию - PullRequest
1 голос
/ 27 июня 2019

Я использую cdk-оверлей FlexibleConnectedTo (origin).То есть, открытость зависит от свободного места, если внизу недостаточно места, он открыт сверху.Но по умолчанию, если достаточно места сверху и снизу, оно открыто сверху.Можно ли изменить положение по умолчанию, чтобы открыть его внизу?

  private getOverlayPosition(origin): PositionStrategy {
    return this.overlay.position()
      .flexibleConnectedTo(origin)
      .withPositions(this.getPositions())
      .withFlexibleDimensions(false)
      .withPush(false)
  }

  private getPositions(): ConnectionPositionPair[] {
    return [
      {
        originX: 'center',
        originY: 'top',
        overlayX: 'center',
        overlayY: 'bottom'
      },
      {
        originX: 'center',
        originY: 'bottom',
        overlayX: 'center',
        overlayY: 'top',
      },
    ]
  }

1 Ответ

0 голосов
/ 27 июня 2019

просто поменяйте местами эти элементы в массиве ConnectionPositionPair[], потому что их порядок имеет значение. если cdk может расположить ваш элемент в соответствии с первой позицией, он не пойдет и не заглянет во вторую.

  private getPositions(): ConnectionPositionPair[] {
    return [
      {
        originX: 'center',
        originY: 'bottom',
        overlayX: 'center',
        overlayY: 'top'
      },
      {
        originX: 'center',
        originY: 'top',
        overlayX: 'center',
        overlayY: 'bottom',
      },
    ]
  }

ссылка ссылка

позиции: ConnectionPositionPair [] // Упорядоченный список предпочтительных позиций, от самых до наименее желательных.

...