我的应用程序使用 AngularJs 和 KendoUI 控件构建。我在应用程序的很多地方都使用了自动完成文本框。现在客户希望搜索应该使用“包含”过滤器。同样,我需要在所有使用自动完成控件的地方放置过滤器:“包含”。
我想在应用程序开始时将默认过滤器“startWith”更改为“包含”。这样我就可以逃脱以更改每个 html 文件。
谁能知道该怎么做?
我的应用程序使用 AngularJs 和 KendoUI 控件构建。我在应用程序的很多地方都使用了自动完成文本框。现在客户希望搜索应该使用“包含”过滤器。同样,我需要在所有使用自动完成控件的地方放置过滤器:“包含”。
我想在应用程序开始时将默认过滤器“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"
}