我正在尝试更改 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;
}
添加回答
举报
0/150
提交
取消