美文网首页
小程序搜索文本高亮组件

小程序搜索文本高亮组件

作者: 柏龙 | 来源:发表于2018-11-28 14:42 被阅读0次

    wxml

    <text wx:for="{{textArr}}" wx:key="index" class="{{item == keyword ? 'highlight':'' }}">{{item}}</text>
    

    js

    // components/highlightText/index.js
    Component({
      /**
       * Component properties
       */
      properties: {
        keyword: {
          type: String,
          observer: 'keywordChanged'
        },
        text: {
          type: String,
          observer: 'textChanged'
        }
      },
    
      /**
       * Component initial data
       */
      data: {
        textArr:[],
        skeyword: '',
        stext: ''
      },
    
      /**
       * Component methods
       */
      methods: {
        keywordChanged(newVal) {
          this.skeyword = newVal
          this.manage()
        },
        textChanged(newVal) {
          this.stext = newVal
          this.manage()
        },
        manage: function() {
          if (!this.stext) { return }
          this.manageText(this.stext, this.skeyword || "")
        },
        manageText: function (str, key) {
          if(key){
            this.setData({ textArr: str.replace(new RegExp(`${key}`, 'g'), `%%${key}%%`).split('%%') })
          }else{
            this.setData({ textArr: [str] })
          }
          // console.log('this.textArr', this.data.textArr)
        }
      },
      externalClasses: ['highlight']
    })
    
    

    pages

    <highlight-text class='title' highlight='highlight' text="{{item.title}}" keyword="{{keyword}}"></highlight-text>
    

    相关文章

      网友评论

          本文标题:小程序搜索文本高亮组件

          本文链接:https://www.haomeiwen.com/subject/nqnaqqtx.html