如何在 select2.js v.4.0.0+ 中使用匹配器?
How to use matcher in select2.js v.4.0.0+?
如果我没理解错的话,matcher在v4.0.0之前的正确用法是:
$('#myselect').select2({
...
matcher: function(term, text) {
// return true if matches, false if not
}
})
对于 4.0.2 这不起作用 - AFAICT matcher
只有一个参数,它是一个对象。我可以使用相同的函数签名并将其包装在 oldWrapper
上,但我想避免这种情况……我找不到任何示例或文档。那么,我该如何使用新的匹配器呢?或者至少,函数签名是什么?
找到它:https://github.com/select2/select2/blob/master/src/js/select2/defaults.js(搜索 function matcher
)。
基本上,函数签名是:
matcher: function (params, data) {
// should return:
// - null if no matches were found
// - `data` if data.text matches params.term
}
然而,我的问题与 "text" 是硬编码字段名称这一事实有关 - 我当然使用了其他名称。希望对大家有帮助。
如果我没理解错的话,matcher在v4.0.0之前的正确用法是:
$('#myselect').select2({
...
matcher: function(term, text) {
// return true if matches, false if not
}
})
对于 4.0.2 这不起作用 - AFAICT matcher
只有一个参数,它是一个对象。我可以使用相同的函数签名并将其包装在 oldWrapper
上,但我想避免这种情况……我找不到任何示例或文档。那么,我该如何使用新的匹配器呢?或者至少,函数签名是什么?
找到它:https://github.com/select2/select2/blob/master/src/js/select2/defaults.js(搜索 function matcher
)。
基本上,函数签名是:
matcher: function (params, data) {
// should return:
// - null if no matches were found
// - `data` if data.text matches params.term
}
然而,我的问题与 "text" 是硬编码字段名称这一事实有关 - 我当然使用了其他名称。希望对大家有帮助。