2017-10-09 4 views
1

私のアプリケーションはAngularJsとKendoUIコントロールで構築されています。アプリケーションの多くの場所でオートコンプリートテキストボックスを使用しました。クライアントは、検索に「Contains」フィルタを使用する必要があります。同じ私はフィルタを置く必要があります:どこにでも '含まれている'オートコンプリートコントロールが使用されています。Kendo Uiオートコンプリート - デフォルトフィルタ "startWith"を "contains"に変更するにはどうすればよいですか?

アプリケーション開始時に、デフォルトフィルタ 'startWith'を 'contains'に変更したいとします。だから私はすべての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

私は2番目のアプローチを探していますデフォルトフィルタをオーバーライドします。私はあなたがJSファイルの1つの始めに与えたコードを書いたが、それは私のために働いていない。 – Snehal

+0

この部分にデバッガを設定できますか?内部にオートコンプリートを含むページを開いたときに実行されますか? – VadimB

+0

ありがとう友人...私のために働いた。私は次の行を追加しました。あなたが何か間違っていることを見つけたら、私を修正してください。 window.kendo.ui.AutoComplete.prototype.options.filter = "contains"; – Snehal

1

あなたはK-オプションを使用することができます属性:

<input kendo-auto-complete ng-model="yourModel" k-data-source="yourDataSource" style="width: 100%;" k-options="autocompleteOptions"/> 
あなたのコントローラで

、その後:

$scope.autocompleteOptions = { 
    filter:"contains" 
} 
関連する問題