2017-10-09 85 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" 
}