所以,搜索代码,我发现,Sifter 模块(搜索/排序引擎,Selectize 依赖),它确实有一个禁用过滤的选项,我们只需要将它转发到 Selectize。我可以建议以下补丁:
在 Selectize main .js 文件中找到函数 getSearchOptions():
https://github.com/brianreavis/selectize.js/blob/master/dist/js/selectize.js
这是之前的:
getSearchOptions: function () {
var settings = this.settings;
var sort = settings.sortField;
if (typeof sort === 'string') {
sort = [{field: sort}];
}
return {
fields: settings.searchField,
conjunction: settings.searchConjunction,
sort: sort
};
}
这是之后:(添加了一个逗号、5 行 cmets 和补丁本身)
...
getSearchOptions: function () {
var settings = this.settings;
var sort = settings.sortField;
if (typeof sort === 'string') {
sort = [{field: sort}];
}
return {
fields: settings.searchField,
conjunction: settings.searchConjunction,
sort: sort,
// A patch to allow to disable native filtering, in the case,
// when we want to provide search results on the server side.
// Negative form of the setting is to avoid changing the standard
// behaviour, (and, possibly, ruining the existing code), when this
// parameter is missing.
filter : !settings.dontFilter
};
},
...
对不起,我只是没有时间在 Github 上创建一个分支,项目截止日期快到了,而且,实际上我不确定我现在能否成为一名优秀的贡献者,因为缺乏一些在 Github 工作的经验。因此,只需发布一个快速解决方法。