2017-10-09 70 views
1

我的应用程序与AngularJs和KendoUI控件构建。我在应用程序中使用了自动完成文本框。现在客户希望该搜索应该使用“Contains”过滤器。为同样我需要把过滤器:'包含'到处使用自动完成控制。剑道UI自动完成 - 如何更改缺省过滤器“startWith”到“包含”?

我想在应用程序的开始默认筛选器“startWith”更改为“包含”。这样我就可以逃过去改变每个html文件。

谁能知道如何做?

回答

0

我猜你需要至少更新一次您自动完成筛选器属性对所有控件,支持动态属性绑定和绑定一些根配置,如:

<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);  
} 
+0

我找了第二种方法,其中覆盖默认过滤器。我编写的代码是你在JS文件的开头给出的,但它不适合我。 – Snehal

+0

你可以设置调试器到这个部分吗?当你用一些autoComplete在里面打开页面时它会被执行吗? – VadimB

+0

谢谢朋友...它为我工作。我添加了以下行。请纠正我,如果你发现任何错误的。 window.kendo.ui.AutoComplete.prototype.options.filter = “包含”; – Snehal

1

可以使用K-options属性:

<input kendo-auto-complete ng-model="yourModel" k-data-source="yourDataSource" style="width: 100%;" k-options="autocompleteOptions"/> 

,然后在你的控制器:

$scope.autocompleteOptions = { 
    filter:"contains" 
}