J'utilise le composant mat-autocomplete avec une entrée selon les exemples dans les documents, et j'ai configuré l'entrée pour utiliser une étiquette et avoir un texte d'espace réservé non flottant comme ceci:
<mat-form-field floatLabel="never">
<input
type="text"
placeholder="Search..."
aria-label="Number"
matInput
[formControl]="search"
[matAutocomplete]="auto">
<button
mat-button
*ngIf="search.value"
matSuffix
mat-icon-button
aria-label="Clear" (click)="clearSearch()">
<mat-icon>close</mat-icon>
</button>
<mat-autocomplete
#auto="matAutocomplete"
(optionSelected)="goToResult($event)">
<mat-option
*ngFor="let result of searchResults"
[value]="result">
{{result.id}}
</mat-option>
</mat-autocomplete>
</mat-form-field>
Lorsque vous cliquez sur l'entrée pour commencer à saisir des caractères, l'espace réservé ne disparaît pas, jusqu'à ce que j'entre le premier caractère. Suis-je absent de certaines propriétés de configuration qui devraient être définies?
Ou dois-je configurer une liaison de valeur d'espace réservé et la définir\effacer moi-même?
Merci
vous pouvez utiliser mat-placeholder et le masquer en lui ajoutant une classe sur l'événement (focus) qui masquera l'espace réservé. Voir ce lien https://stackoverflow.com/a/60021883/90261
en utilisant OOTB matInput
et en masquant l'espace réservé "on-float" uniquement)
/*hide the floating mat input part */
.mat-form-field-should-float .mat-form-field-label-wrapper {display: none;}
solution complète
.middle-cut .mat-form-field-should-float .mat-form-field-label-wrapper {display: none;}
.middle-cut .mat-form-field-should-float .mat-form-field-infix { margin-top: -10px;}
.middle-cut .mat-form-field-infix {border:0; padding-top:0; padding: .1375em 0; }
.middle-cut .mat-form-field-label{top: 0.85em;}