猿问

node_modules select2 将wrappedMatcher 替换为

我正在尝试更改 node_modules Angular 6 项目中的 select2.jull.js 文件。到目前为止,我找到了一些方法来做到这一点,但没有任何效果对我有用,你会喜欢我如何在 select2 文件中用 startMatcher 替换wrappedMatcher 的任何建议吗?


S2.define('select2/compat/matcher',[

  'jquery'

], function ($) {

  function oldMatcher (matcher) {

    function wrappedMatcher (params, data) {

      var match = $.extend(true, {}, data);


      if (params.term == null || $.trim(params.term) === '') {

        return match;

      }


      if (data.children) {

        for (var c = data.children.length - 1; c >= 0; c--) {

          var child = data.children[c];


          // Check if the child object matches

          // The old matcher returned a boolean true or false

          var doesMatch = matcher(params.term, child.text, child);


          // If the child didn't match, pop it off

          if (!doesMatch) {

            match.children.splice(c, 1);

          }

        }


        if (match.children.length > 0) {

          return match;

        }

      }


      if (matcher(params.term, data.text, data)) {

        return match;

      }


      return null;

    }


    return wrappedMatcher;

  }


  return oldMatcher;

});


慕田峪7331174
浏览 142回答 1
1回答

慕森卡

将以下代码添加到我的 select2.directives.ts 中解决了我的问题      if (data.text.toString().toLowerCase().indexOf(params.term) > -1 &&        !!data.text.toString().toLowerCase().startsWith(params.term.toString().toLowerCase())) {        var modifiedData = $.extend({}, data, true);        // modifiedData.text += ' (matched)';        // You can return modified objects from here        // This includes matching the `children` how you want in nested data sets        return modifiedData;      }
随时随地看视频慕课网APP

相关分类

JavaScript
我要回答