Select2 пользовательские совпадений, но держать stripDiacritics
Я знаю, что в предыдущих версиях select2 stripDiacritics был экспортирован, поэтому он был доступен за пределами сопоставления по умолчанию. В текущей версии 4.0.1 кажется невозможным написать пользовательский сопоставитель и использовать stripDiacritics select2, так как не экспортируется в $.fn.select2.defaults
какой лучший способ я могу вытащить оригинальный stripDiacritics
для меня написать пользовательский сопоставитель?
Я пытаюсь написать сопоставитель, который соответствует как тексту опции, так и данным атрибут. Я пытаюсь избежать исправления источника select2, я думаю, что это будет кошмар, если я пойду по этому пути.
обновление
я выделил фактический вопрос и опубликовал дополнительные сведения о коде, с которым я работаю, как предложено в комментариях:
Я не прошу кого-то написать новый matcher (на основе $.fn.select2.defaults.defaults.matcher
) для меня, я просто прошу лучшие способ вытащить оригинальный stripDiacritics
, который является частным, так что я могу использовать его.
я мог бы просто скопировать функцию (и это зависимости:DIACRITICS
object) для моего кода, но это дыра, которую я пытаюсь избежать.
1 ответов
С stripDiacritics
s-это частный метод, с ним мало что можно сделать (кроме разбора исходного кода).
однако, если вы довольны копированием только stripDiacritics
метод из кодовой базы select2 и полагаясь на select2 для предоставления DIACRITICS
зависимость, вы всегда можете просто потребовать 'select2/diacritics'
модуль:
$.fn.select2.amd.require(['select2/diacritics'], function (DIACRITICS) {
// stripDiacritics code copied from select2
function stripDiacritics (text) {
// Used 'uni range + named function' from http://jsperf.com/diacritics/18
function match(a) {
return DIACRITICS[a] || a;
}
return text.replace(/[^\u0000-\u007E]/g, match);
}
$(".awesome").select2({
// declare your matcher code here with access to stripDiacritics
})
});