首页 > 其他 > 详细

angular6+ 搜索关键字高亮显示

时间:2019-12-31 11:34:27      阅读:133      评论:0      收藏:0      [点我收藏+]

参考资料:https://blog.csdn.net/qq_38712932/article/details/85448824

我现在用的angular 版本是8,发现该方法可用;效果图:

技术分享图片

 

 

首先创建一个pipe,

import { Pipe, PipeTransform } from ‘@angular/core‘;
import { DomSanitizer } from ‘@angular/platform-browser‘; // 数据在页面上绑定可以安全解析
@Pipe({
  name: ‘keyLight‘
})
export class KeyLightPipe implements PipeTransform {
  constructor(private sanitizer: DomSanitizer) {}

  transform(val: string, keyword: string): any { // Angular 会调用它的 transform 方法,并把要绑定的值作为第一个参数传入,其它参数会依次从第二个参数的位置开始传入。
    const Reg = new RegExp(keyword, ‘i‘);
    if (val) {
      const res = val.replace(Reg, `<a style="color: #e57575;">${keyword}</a>`); // 将匹配到的关键字替换
      // console.log(res);
      return this.sanitizer.bypassSecurityTrustHtml(res);
    }
  }
}

 

PS: 普及一下pipe知识点:

import {Pipe, PipeTransform} from ‘@angular/core‘;

@Pipe({name: ‘repeat‘})
export class RepeatPipe implements PipeTransform {
  transform(value: any, times: number) {
    return value.repeat(times);
  }
}

// 实例:

在模板中调用 {{ ‘ok‘ | repeat:3 }} 的结果是 okokok。即冒号 “:” 后面跟第二个参数
// html
<tr *ngFor="let data of ajaxTable.data"> <td> <span [innerHTML]="data.artifactId | keyLight: pageData.filter"></span> // 这里pageDate.filter 是 接口返回给的关键字,如果接口没有返回,可以自行声明创建或沟通后端给一个~~~233333 </td> </tr>

angular6+ 搜索关键字高亮显示

原文:https://www.cnblogs.com/gushiyoyo/p/12122995.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!