私が取り組んでいるウェブサイトにhttps://github.com/angular-ui/ui-selectを使用しています。次のように現在のコードは次のとおりです。angularjs ui-select-choicesドロップダウン入力に応じてアルファベット順に表示
<ui-select ng-model="model.states">
<ui-select-match placeholder="State">
{{$item.Name}}
</ui-select-match>
<ui-select-choices repeat="item.Code as item in statesArray | filter:$select.search">
{{item.Name}}
</ui-select-choices>
</ui-select>
私は入力フィールドに何も入力し、例えば「A」、UI選択 - 選択肢は(デフォルトでは)「A」を含むすべてのフィールドを示します。私がしたいことは、 "a"で始まるすべての状態を表示することです。入力ボックスに何も入力されていない場合は、すべてのフィールドをアルファベット順に表示します。誰かが解決策を提案できますか?私は他のいくつかの投稿を見ましたが、誰もこの質問にまだ答えませんでした。前もって感謝します。
例は、ここでの例だとしよう状態配列はカリフォルニア、コネチカット、アラスカ州、アリゾナ州、ニューヨークのような状態があります。
入力フィールドに何も入力されていない場合は、Alaska、Arizona、California、Connecticut、New Yorkが表示されます(orderByフィルターを使用して実現できます)。
ユーザーが入力フィールドに「a」と入力すると、Alaska、Arizonaが表示され、AlaskaとArizonaは「a」で始まるフィールドしか表示されません。 ユーザーが「c」を入力した場合、ドロップダウンにはカリフォルニア州コネチカット州が表示されます。 ユーザーが「ca」と入力すると、指定された入力文字列にのみ一致するので、ドロップダウンでカリフォルニアのみが表示されます。
利用トニーのソリューションhttps://github.com/michaelbromley/angularUtils/blob/master/src/filters/:ここでは、次のように
のstartsWithフィルターがあり、ありますstartsWith/startsWith.js – KreepN
ありがとう@KreepN。私は、startsWithフィルターを使って動作させることができました。私には1つの質問があった。入力フィールドに入力されたテキストをフィルタに渡す方法を知っていますか?私は$( 'input.ui-select-search')のようなjqueryセレクタを使うことができますが、val()でも問題は、複数のui-selectコンテナを使用しています。他の容器の場合。私は、ui-selectコンテナに入力された値をstartsWithフィルタに渡したいと思います。どうすればいいの? $ select.searchは機能しません。 – Swap