Kendo Ui 自动完成 - 如何将默认过滤器 "startWith" 更改为 "contains"?
Kendo Ui AutoComplete - How to change default filter "startWith" to "contains"?
我的应用程序是用 AngularJs 和 KendoUI 控件构建的。我在应用程序中的很多地方都使用了自动完成文本框。现在客户希望搜索应该使用 "Contains" 过滤器。同样,我需要在所有使用自动完成控件的地方放置过滤器:'contains'。
我想在应用程序开始时将默认过滤器 'startWith' 更改为 'contains'。这样我就可以逃避对每个 html 文件进行更改。
有谁知道如何做同样的事情吗?
我想您需要为所有控件至少更新一次自动完成过滤器 属性 以支持动态 属性 绑定并绑定到某些根配置,例如:
<input kendo-auto-complete k-filter="config.autoComplete.defaultFilter" />
因此将来可以通过仅更新配置值来更改默认过滤器。
另一种方法 - 覆盖 "AutoComplete" 组件的默认 "setOptions" 行为,以默认在应用程序启动时某处使用正确的过滤器:
var nativeSetOptions = window.kendo.ui.AutoComplete.prototype.setOptions;
window.kendo.ui.AutoComplete.prototype.setOptions = function(options) {
options.filter = 'contains';
nativeSetOptions.call(this, options);
}
您可以使用 k-options 属性:
<input kendo-auto-complete ng-model="yourModel" k-data-source="yourDataSource" style="width: 100%;" k-options="autocompleteOptions"/>
然后在你的控制器中:
$scope.autocompleteOptions = {
filter:"contains"
}
我的应用程序是用 AngularJs 和 KendoUI 控件构建的。我在应用程序中的很多地方都使用了自动完成文本框。现在客户希望搜索应该使用 "Contains" 过滤器。同样,我需要在所有使用自动完成控件的地方放置过滤器:'contains'。
我想在应用程序开始时将默认过滤器 'startWith' 更改为 'contains'。这样我就可以逃避对每个 html 文件进行更改。
有谁知道如何做同样的事情吗?
我想您需要为所有控件至少更新一次自动完成过滤器 属性 以支持动态 属性 绑定并绑定到某些根配置,例如:
<input kendo-auto-complete k-filter="config.autoComplete.defaultFilter" />
因此将来可以通过仅更新配置值来更改默认过滤器。
另一种方法 - 覆盖 "AutoComplete" 组件的默认 "setOptions" 行为,以默认在应用程序启动时某处使用正确的过滤器:
var nativeSetOptions = window.kendo.ui.AutoComplete.prototype.setOptions;
window.kendo.ui.AutoComplete.prototype.setOptions = function(options) {
options.filter = 'contains';
nativeSetOptions.call(this, options);
}
您可以使用 k-options 属性:
<input kendo-auto-complete ng-model="yourModel" k-data-source="yourDataSource" style="width: 100%;" k-options="autocompleteOptions"/>
然后在你的控制器中:
$scope.autocompleteOptions = {
filter:"contains"
}