如何使用选项组重置物料自动填充中的自定义过滤器

如何重置物料自动填充autocomplete中的自定义过滤器值。我有一组选项,如here。现在我想创建一个自定义过滤器来过滤我们的结果,它是选项组的名称。像我的TS文件我有:如何使用选项组重置物料自动填充中的自定义过滤器

pokemonGroups = [ 

{

name: 'Grass',

pokemon: [

'bulbasaur-0', 'Bulbasaur', 'oddish-1','Oddish','bellsprout-2', 'Bellsprout'

]

},

{

name: 'Water',

pokemon: [

'squirtle-3', 'Squirtle', 'psyduck-4','Psyduck', 'horsea-5', 'Horsea'

]

}]

现在在我的html:

<form [formGroup]="searchForm"> 

<mat-form-field class="example-full-width">

<input type="text" placeholder="Pokemon" aria-label="Pokemon" matInput formControlName="pokemonControl" [matAutocomplete]="auto">

<mat-autocomplete #auto="matAutocomplete">

<mat-optgroup *ngFor="let group of pokemonGroups" [label]="group.name" [disabled]="group.disabled">

<mat-option *ngFor="let poke of group.pokemon" [value]="poke">

{{ poke }}

</mat-option>

</mat-optgroup>

</mat-autocomplete>

</mat-form-field>

</form>

我的打字稿文件:

ngOnInit() { 

// ... code

this.searchForm.controls.pokemonControl.valueChanges

.subscribe(

(val) => {

this.filter(val);

}

);

}

filter(val) {

for (const pokemon of this.pokemonGroups) {

pokemon.pokemon= pokemon.pokemon.filter(pok=>

pok.toLowerCase().indexOf(val.toLowerCase()) === 0);

}

return this.pokemonGroups;

}

过滤器工作正常,但当我按空格键或删除关键字,那么它应该重置我的所有值。哪个不起作用。

回答:

我还没有测试但你可以尝试这样。另请检查this

ngOnInit() { 

this.pokemonControl.valueChanges

.subscribe(

(val) => {

this.filter(val);

}

);

}

filter(val) {

for (const pokemon of this.pokemonGroups) {

pokemon.pokemon= pokemon.pokemon.filter(pokemon=>

pokemon.toLowerCase().indexOf(val.toLowerCase()) === 0);

}

return this.pokemonGroup;

}

以上是 如何使用选项组重置物料自动填充中的自定义过滤器 的全部内容, 来源链接: utcz.com/qa/261249.html

回到顶部