gpt4 book ai didi

html - Material Angular 自动完成 : how to remains the mat-option in the screen after selecting an option?

转载 作者:行者123 更新时间:2023-12-05 08:07:34 26 4
gpt4 key购买 nike

我正在使用 Material auto complete angular .在我的 mat-option 列表中选择一个选项后,我的 mat-options 隐藏。选择后我需要保留选项。显示问题的 Gif:

enter image description here

我的 html

<div class="col-xl-6 margemColunas">
<label>Anunciaremos nas contas *</label>
<input class="form-control inputContasB2W"
#inputContasB2W
[formControl]="contasB2WControl"
[matAutocomplete]="auto"
(matChipInputTokenEnd)="add($event)">
<mat-autocomplete #auto="matAutocomplete" (optionSelected)="selected($event, i)">
<mat-option *ngFor="let contaB2W of contasFiltradas | async" [value]="contaB2W">
{{contaB2W}}
</mat-option>
</mat-autocomplete>
</div>

<div class="col-xl-6 alinhaChips">
<mat-chip-list>
<mat-chip
*ngFor="let contaB2W of produto.contasAnunciarB2W; let j = index"
[selectable]="selected"
[removable]="removable"
(removed)="removeTag(i, j)">
{{contaB2W}}
<mat-icon matChipRemove><i class="fa fa-close"></i></mat-icon>
</mat-chip>
</mat-chip-list>
</div>

我的问题:

constructor(){
this.contasFiltradas = this.contasB2WControl.valueChanges.pipe(
startWith(null),
map((nomeConta: string | null) => nomeConta ? this._filter(nomeConta) : this.contasB2W.slice()));
}

private _filter(value: string): string[] {
const filterValue = value.toLowerCase();
return this.contasB2W.filter(conta => conta.toLowerCase().indexOf(filterValue) === 0);
}

selected(event: MatAutocompleteSelectedEvent, index: number): void {

this.produtosConfirmadosAnuncio[index].contasAnunciarB2W.push(event.option.viewValue);

this.inputContasB2W.nativeElement.value = '';

}
}

最佳答案

我使用了 blur() 的变通方法,然后再次使用 focus() 输入。

在 ts:

@ViewChild('inputContasB2W') autocompleteInput: ElementRef;

selected(event: MatAutocompleteSelectedEvent) {
[..do your stuff...]

this.autocompleteInput.nativeElement.blur();
setTimeout(() => {
this.autocompleteInput.nativeElement.focus();
}, 100
);
}

如果您想保留输入文本,您必须将其保存在 _filter() 中,并在 blur() 之前再次设置值,例如 this.contasB2WControl。 setValue(this.lastFilterValue);

关于html - Material Angular 自动完成 : how to remains the mat-option in the screen after selecting an option?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54748394/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com