Как отобразить полное значение опции при наведении в mat-autocomplete - PullRequest
0 голосов
/ 09 января 2020

Это демонстрационное приложение, использующее mat-autocomplete, я выбрал из сообщения stackoverflow введите описание ссылки здесь , я хочу отобразить все значение опции. Когда значение длинное. Я нашел похожий вопрос введите описание ссылки здесь , но это не решило мою проблему. Я могу прокрутить и увидеть значение, могу изменить стиль css, чтобы полоса прокрутки была видна правильно.

Похоже, что оставшаяся часть полосы прокрутки скрыта!

Я пытался

.mat-option {

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

Ничего не получилось!

Было бы лучше, если элемент был показан полностью.

enter image description here

Фрагмент кода шаблон. 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>

typescript.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);
  }

1 Ответ

0 голосов
/ 13 января 2020

У вас есть 3 способа решить эту проблему.

1.Добавьте прокрутку к mat-option, поскольку у вас уже есть это в вашем вопросе

2.Приведите ширину к mat-select, но это будет также может возникнуть проблема, если mat-option слишком длинный.

3.Этот вариант - перенос текста - добавьте ниже css к mat-option

.mat-option {
 word-break: break-all;
 white-space: normal;
 height: unset;
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...