我的應用程序與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