我正在使用https://github.com/angular-ui/ui-select作为我正在处理的网站。目前代码如下:
<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>
当我在输入字段中输入任何内容时,例如&#34; a&#34;,ui-select-choices显示包含&#34; a&#34;的所有字段。 (默认情况下)。我想要做的是,我想要显示所有以&#34; a&#34;开头的状态。只要。如果输入框中未输入任何内容,则按字母顺序显示所有字段。有人可以提出解决方案吗?我看过其他一些帖子,但还没有人回答这个问题。提前谢谢。
以下是一个例子,假设州阵列有像加利福尼亚州,康涅狄格州,阿拉斯加州,亚利桑那州,纽约州等州。
如果输入字段中没有输入任何内容,则下拉列表应显示阿拉斯加州,亚利桑那州,加利福尼亚州,康涅狄格州,纽约州(可以使用orderBy过滤器实现)。
如果用户输入&#34; a&#34;在输入字段中,下拉列表应显示亚利桑那州,亚利桑那州,而阿拉斯加州和亚利桑那州只有以&#34; a&#34;开头的字段。 如果用户键入&#34; c&#34;,下拉列表应显示康涅狄格州加利福尼亚州。 如果用户键入&#34; ca&#34;,下拉列表应仅显示加利福尼亚,因为它只匹配给定的输入字符串。
答案 0 :(得分:9)
答案 1 :(得分:2)
在挖掘了一点之后,在Tomy和KreepN的帮助下,我找到了答案。在这里,
dispose
startsWith Filter如下:
<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 | startsWith:$select.search | orderBy:'Code'">
{{item.Name}}
</ui-select-choices>
</ui-select>
答案 2 :(得分:0)
我尝试了以上所有选项,但仅在这种情况下才获得了结果。 它对我有用:
<ui-select-choices repeat="group in groups | filter: $select.search | orderBy:['name']">
{{ group.name }}
</ui-select-choices>