首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何根据输入的搜索值突出显示筛选的内容,而不是使用angular2单击字母表

如何根据输入的搜索值突出显示筛选的内容,而不是使用angular2单击字母表
EN

Stack Overflow用户
提问于 2019-04-23 05:42:13
回答 2查看 66关注 0票数 0

我有列表的项目,根据搜索它是突出显示的字母,我正在搜索。现在,如果我使用输入搜索框,我想要突出显示字母,但是如果我从字母表行中选择任何字母表,它也会突出显示。

演示:演示

TS:

代码语言:javascript
复制
   searchFacility(search) {
    this.sLetter = search;
    let memberFacilities = true;
    if (search) {
      this.dtFacilities.expandedRows = [];
      setTimeout(() => {
        this.dtFacilities.expandedRows = this.dtFacilities.value;
        this.dtFacilities.value.forEach(m => {
          m.memberFacilities.forEach(f => {
            let mySearch = search.toLowerCase();
            let facilityName = f.facilityName.toLowerCase();
            if (facilityName && facilityName.includes(mySearch)) {
              f.isShowMember = false;
              memberFacilities = false;
            } else {
              f.isShowMember = true;
            }
          })
        })
        if (memberFacilities) {
          this.dtFacilities.expandedRows = [];
        }
      }, 100);

    }
    else {
      this.dtFacilities.expandedRows = [];
      this.dtFacilities.value.forEach(m => {
        m.memberFacilities.map(f => {
          f.isShowMember = false;
        })
      })
    }
    if(search==''){
      this.searchFname="";
    }
  }
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2019-04-23 06:57:54

我认为你想要达到的目标可以通过设置一个sLetter.toUppedCase()来解决

代码语言:javascript
复制
 <a (click)="searchFacility(alphabet)" [class.activeletter]="sLetter.toUpperCase()===alphabet"> {{alphabet}}</a>

我还为activeletter添加了一个类:

代码语言:javascript
复制
.activeletter {
  font-weight: 800;
}

我在这里分叉是为了检查它是如何工作的:

https://stackblitz.com/edit/angular-stack-55804980-letterhighlight?file=src/app/app.component.css

更新:

在你的评论之后,我另一次看到了代码。sLetter和搜索值searchFname之间有点混乱。您应该澄清您想要使用的过滤器(可能是searchFname)。此外,不要在每次搜索时覆盖sLetter,并更新管道getHtml以接受起始字母和searchText。

检查更新的stackblitz:

https://stackblitz.com/edit/angular-stack-55804980-letterhighlight2?file=src/app/app.component.ts

票数 1
EN

Stack Overflow用户

发布于 2019-04-23 05:58:48

删除字母上的单击事件,更改

代码语言:javascript
复制
  <a (click)="searchFacility(alphabet)" [class.activeletter]="sLetter==alphabet"> {{alphabet}}</a>

代码语言:javascript
复制
  <a   [class.activeletter]="sLetter==alphabet"> {{alphabet}}</a>
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/55804980

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档