我的应用程序与AngularJs和KendoUI控件构建。我在应用程序中使用了自动完成文本框。现在客户希望该搜索应该使用“Contains”过滤器。为同样我需要把过滤器:'包含'到处使用自动完成控制。剑道UI自动完成 - 如何更改缺省过滤器“startWith”到“包含”?
我想在应用程序的开始默认筛选器“startWith”更改为“包含”。这样我就可以逃过去改变每个html文件。
谁能知道如何做?
我的应用程序与AngularJs和KendoUI控件构建。我在应用程序中使用了自动完成文本框。现在客户希望该搜索应该使用“Contains”过滤器。为同样我需要把过滤器:'包含'到处使用自动完成控制。剑道UI自动完成 - 如何更改缺省过滤器“startWith”到“包含”?
我想在应用程序的开始默认筛选器“startWith”更改为“包含”。这样我就可以逃过去改变每个html文件。
谁能知道如何做?
我猜你需要至少更新一次您自动完成筛选器属性对所有控件,支持动态属性绑定和绑定一些根配置,如:
<input kendo-auto-complete k-filter="config.autoComplete.defaultFilter" />
左右就能改变缺省过滤器将来只需更新配置值。
另一种方法 - 就是覆盖默认的“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"
}
我找了第二种方法,其中覆盖默认过滤器。我编写的代码是你在JS文件的开头给出的,但它不适合我。 – Snehal
你可以设置调试器到这个部分吗?当你用一些autoComplete在里面打开页面时它会被执行吗? – VadimB
谢谢朋友...它为我工作。我添加了以下行。请纠正我,如果你发现任何错误的。 window.kendo.ui.AutoComplete.prototype.options.filter = “包含”; – Snehal