0

这是使用 mat-autocomplete 的演示应用程序,我从 stackoverflow 帖子中选择在此处输入链接描述 ,我想显示选项的整个值。当值很长时。我发现了类似的问题,请在此处输入链接描述,但这并没有解决我的问题。我可以滚动并查看值,可以修改 css 样式,以便滚动条正确可见。

看起来滚动条的剩余部分被隐藏了!

我试过了

.mat-option {

z-index:5000;
height:300px;
}

什么都没有解决!

如果元素完全显示出来会更好。

在此处输入图像描述

代码片段 模板.html

  <mat-form-field class="example-full-width">
    <input matInput placeholder="State" aria-label="State" [matAutocomplete]="auto" [formControl]="stateCtrl">
    <mat-autocomplete #auto="matAutocomplete" panelWidth="320px">
      <mat-option *ngFor="let state of filteredStates | async" [value]="state.name">
        <img class="example-option-img" aria-hidden [src]="state.flag" height="25">
        <span>{{state.name}}</span> |
        <small>Population: {{state.population}}</small>
      </mat-option>
    </mat-autocomplete>
  </mat-form-field>

打字稿.ts

 states: State[] = [
    {
      name: 'Arkansas',
      population: '2.978M',
      // https://commons.wikimedia.org/wiki/File:Flag_of_Arkansas.svg
      flag: 'https://upload.wikimedia.org/wikipedia/commons/9/9d/Flag_of_Arkansas.svg'
    },
    {
      name: 'California CaliforniaCaliforniaCaliforniaCaliforniaCaliforniaCaliforniaCaliforniaCaliforniaCaliforniaCalifornia',
      population: '39.14M',
      // https://commons.wikimedia.org/wiki/File:Flag_of_California.svg
      flag: 'https://upload.wikimedia.org/wikipedia/commons/0/01/Flag_of_California.svg'
    }

  ];

 constructor() {
    this.filteredStates = this.stateCtrl.valueChanges
      .pipe(
        startWith(''),
        map(state => state ? this._filterStates(state) : this.states.slice())
      );
  }

  private _filterStates(value: string): State[] {
    const filterValue = value.toLowerCase();

    return this.states.filter(state => state.name.toLowerCase().indexOf(filterValue) === 0);
  }
4

1 回答 1

0

你有 3 种方法来解决这个问题

1.添加滚动到mat-option您的问题中已有的内容

2.给宽度,但如果太长mat-select也会出现问题。mat-option

3.这个选项是换行 - 在css下面添加到mat-option

.mat-option {
 word-break: break-all;
 white-space: normal;
 height: unset;
}
于 2020-01-13T07:04:39.947 回答