如何在用户开始输入时更改搜索图标 Angular
How to change search icon when user start typing in Angular
我的资产文件夹中有 2 个 SVG 图标,我的 HTML 中有一个用户输入框。我希望第一个图标显示为默认图标,但是每当用户开始在文本框中键入内容时,我希望显示第二个图标。我很难实现它。
有相同的搜索图标,但第一个图标是纯白色,第二个图标是蓝绿色。
The default icon = search-magnifying-glass-icon.
Change this when user start typing =
search-magnifying-glass-teal-icon.
我不确定是否可以直接更改 SVG 图标的描边颜色而不是在资产文件夹中有两个图标,但这是现在的代码。
HTML
<mat-form-field appearance="fill" style="width: 380px;" >
<input matInput [formControl]="inputCtrl" [(ngModel)]="searchText" (ngModelChange)="searchTextChanged($event)"
placeholder="Search" class="input">
<div class="icon"><img src="../../assets//images/icons/search-magnifying-glass-icon.svg"></div>
</mat-form-field>
一些TS
ngOnInit(): void {
this._filterTags();
this.inputCtrl.valueChanges
.pipe(takeUntil(this.death$))
.subscribe((value: string) => {
this._filterTags(value);
this.updateQuery(value);
if(value == ''){
this.showColumn = false;
}else{
this.showColumn = true;
}
});
在 html 中,您更改图标元素以获取参数
<div class="icon"><img [src]="icon"></div>
然后在组件中创建图标变量
icon="../../assets/images/icons/search-magnifying-glass-icon.svg"
然后在你的代码中
this.inputCtrl.valueChanges
.pipe(takeUntil(this.death$))
.subscribe((value: string) => {
this._filterTags(value);
this.updateQuery(value);
if(value == ''){
this.showColumn = false;
this.icon="../../assets/images/icons/search-magnifying-glass-icon.svg"
}else{
this.showColumn = true;
this.icon="../../assets/images/icons/search-magnifying-glass-teal-icon"
}
});
我的资产文件夹中有 2 个 SVG 图标,我的 HTML 中有一个用户输入框。我希望第一个图标显示为默认图标,但是每当用户开始在文本框中键入内容时,我希望显示第二个图标。我很难实现它。
有相同的搜索图标,但第一个图标是纯白色,第二个图标是蓝绿色。
The default icon = search-magnifying-glass-icon.
Change this when user start typing = search-magnifying-glass-teal-icon.
我不确定是否可以直接更改 SVG 图标的描边颜色而不是在资产文件夹中有两个图标,但这是现在的代码。
HTML
<mat-form-field appearance="fill" style="width: 380px;" >
<input matInput [formControl]="inputCtrl" [(ngModel)]="searchText" (ngModelChange)="searchTextChanged($event)"
placeholder="Search" class="input">
<div class="icon"><img src="../../assets//images/icons/search-magnifying-glass-icon.svg"></div>
</mat-form-field>
一些TS
ngOnInit(): void {
this._filterTags();
this.inputCtrl.valueChanges
.pipe(takeUntil(this.death$))
.subscribe((value: string) => {
this._filterTags(value);
this.updateQuery(value);
if(value == ''){
this.showColumn = false;
}else{
this.showColumn = true;
}
});
在 html 中,您更改图标元素以获取参数
<div class="icon"><img [src]="icon"></div>
然后在组件中创建图标变量
icon="../../assets/images/icons/search-magnifying-glass-icon.svg"
然后在你的代码中
this.inputCtrl.valueChanges
.pipe(takeUntil(this.death$))
.subscribe((value: string) => {
this._filterTags(value);
this.updateQuery(value);
if(value == ''){
this.showColumn = false;
this.icon="../../assets/images/icons/search-magnifying-glass-icon.svg"
}else{
this.showColumn = true;
this.icon="../../assets/images/icons/search-magnifying-glass-teal-icon"
}
});