为了账号安全,请及时绑定邮箱和手机立即绑定

node_modules select2 将wrappedMatcher 替换为

node_modules select2 将wrappedMatcher 替换为

慕田峪7331174 2023-12-14 14:13:31
我正在尝试更改 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;});
查看完整描述

1 回答

?
慕森卡

TA贡献1806条经验 获得超8个赞

将以下代码添加到我的 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;

      }


查看完整回答
反对 回复 2023-12-14
  • 1 回答
  • 0 关注
  • 131 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信