У меня есть поле mat-form со стандартным вводом внутри него и прикрепленное автозаполнение mat.
<mat-form-field appearance="fill">
<mat-label>{{ 'INVENTORY.areaOfBusiness' | translate }}</mat-label>
<input type="text" matInput
[matAutocomplete]="businessAreaAuto"
(keyup)="search($event, 'businessArea')"
[(ngModel)]="businessArea">
<mat-icon matSuffix>add</mat-icon>
<mat-autocomplete #businessAreaAuto="matAutocomplete" (optionSelected)="businessSelection($event)">
<mat-option *ngIf="bizNoResults === true" class="no-click">{{ 'INVENTORY.no-result' | translate }}</mat-option>
<mat-option *ngIf="isSearchBiz === true">
<div class="desktop-spinner">
<span>{{ 'INVENTORY.searching' | translate }}...</span>
<mat-progress-spinner
diameter = 20
mode = "indeterminate"
[value]="value">
</mat-progress-spinner>
</div>
</mat-option>
<mat-option
*ngFor="let bizArea of businessAreaResults | async"
[value]="bizArea"
matTooltip="{{bizArea}}">
{{bizArea}}
</mat-option>
</mat-autocomplete>
</mat-form-field>
В поле mat-form я добавил ширину перехода при применении класса, сфокусированного на mat:
mat-form-field {
margin-left: 24px;
font-size: 14px;
width: 170px;
transition: width .5s ease;
}
.mat-focused {
width: 270px;
}
Однако я сталкиваюсь с проблемами с определением размера шириныпанели автозаполнения, когда ввод входит и не в фокусе.Панель автозаполнения, кажется, действительно не догоняет правильную ширину, пока пользователь не наберет текст.В документах по угловым материалам я не нашел метода или входных данных, в которых можно было бы обновить автозаполнение до нужного размера.Похоже, что ловит размер на входе в разных точках процесса перехода.
Любая помощь / предложения будут высоко оценены
stackblitz https://stackblitz.com/edit/angular-yfxr8y