【问题标题】:Controlling the position of angular material 2 autocomplete options panel控制角材料的位置 2 自动完成选项面板
【发布时间】:2017-11-20 05:57:15
【问题描述】:

我正在尝试控制 angular material 2 自动完成选项面板的位置,并将此面板放置在与实际输入的 div 不同的 div 中。

这是我尝试过的:

<div fxLayout="row">
  <div fxFlex="50">
    <form [formGroup]="formStatus.form">
      <div>
        <md-input-container>
          <input mdInput formControlName="title" placeholder="Titre">
        </md-input-container>
      </div>
      <div>
        <md-input-container>
          <input mdInput placeholder="Address" [mdAutocomplete]="auto" formControlName="address">
        </md-input-container>
      </div>
    </form>
  </div>
  <div fxFlex="50" style="background-color: palegreen">
    <!-- options panel should appear here in the palegreen div -->
    <md-autocomplete #auto="mdAutocomplete" [displayWith]="addressFormatter">
      <md-option *ngFor="let address of addresses | async" [value]="address">
        {{ address.description }}
      </md-option>
    </md-autocomplete>
  </div>
</div>

但是,选项面板仍然出现在输入的正下方,并且它的位置似乎与输入的位置绑定...

【问题讨论】:

  • 与 Datepicker 相同的问题...

标签: angular2-forms angular-material2


【解决方案1】:

您可以使用以下代码控制 Angular Material 2 自动完成选项面板的位置

::ng-deep .mat-autocomplete-panel{
  position: fixed !important;
  top:30% !important;
  left: 40%;
  right: 30%;
  border: 3px solid #73AD21;
  background-color: palegreen !important;
} 

【讨论】:

  • 这个答案不完整。请扩展您的答案。
【解决方案2】:

只是添加到@ferralucho 和@Nehal 提供的当前解决方案

::ng-deep 正如@ferralucho 所建议的那样,我需要影响父组件类。

我想在离我更远的地方显示我的自动完成选项面板,因为我在输入框周围有一个包装器 div。以下工作:

::ng-deep .mat-autocomplete-panel {
  position: relative;
  top: 30px;
}

【讨论】:

    【解决方案3】:

    我不确定这是否完全符合您的要求,但您可以通过操作 mat-calendarmat-autocomplete-panel 的父类来控制它们的位置。这些被覆盖的类需要位于目标组件之上才能生效。

    例子:

    .mat-autocomplete-panel {
       position: fixed !important;
       top:30% !important;
       left: 40%;
       right: 30%;
       border: 3px solid #73AD21;
       background-color: palegreen !important;
    }
    

    日期选择器demo

    自动完成demo

    【讨论】:

    • 非常感谢@Nehal 的样品!您确认 CSS 是实现分离的唯一方法吗?
    • 是否有 CSS 方法可以将自动完成面板定位在给定的 div 中,而不是使用相对位置?
    • 嗨@balteo,我还没有找到任何方法来改变 md-autocomplete 的 css 属性而不调整它自己的关联 css 类。这是我能想出的唯一解决方案:(
    • 你好,Nehal。我正在寻找一种方法来扩展组件并使用我自己的模板...
    猜你喜欢
    • 2017-12-29
    • 2017-07-14
    • 2018-10-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-10-20
    • 2018-06-17
    相关资源
    最近更新 更多