【发布时间】:2013-08-28 02:34:00
【问题描述】:
AngularJs UI 中的 typeahead 功能看起来简单而强大,但是我一直在尝试弄清楚如何在前导字符上进行匹配。例如,如果我在输入框中键入“A”,我想查看所有以“A”开头的州,而不是所有名称中包含“A”的州。我一直在寻找几天关于这一点,似乎 Angular 有一个具有“比较器”的自定义过滤器的概念。关于此的文档有一个简单的示例,它没有显示实现比较器的确切语法。
html 看起来像这样:
<div>Selected: <span>{{selected}}</span></div>
<div><input type="text" ng-model="selected" typeahead="name for name in states | filter:selected"></div>
基本的 javascript 是这样的
angular.module('firstChar', ['ui.bootstrap']);
function TypeaheadCtrl($scope) {
$scope.selected = undefined;
$scope.states = ['Alabama', 'Alaska', 'Arizona', 'Arkansas', 'California', 'Colorado', 'Connecticut', 'Delaware', 'Florida', 'Georgia', 'Hawaii', 'Idaho', 'Illinois', 'Indiana', 'Iowa', 'Kansas', 'Kentucky', 'Louisiana', 'Maine', 'Maryland', 'Massachusetts', 'Michigan', 'Minnesota', 'Mississippi', 'Missouri', 'Montana', 'Nebraska', 'Nevada', 'New Hampshire', 'New Jersey', 'New Mexico', 'New York', 'North Dakota', 'North Carolina', 'Ohio', 'Oklahoma', 'Oregon', 'Pennsylvania', 'Rhode Island', 'South Carolina', 'South Dakota', 'Tennessee', 'Texas', 'Utah', 'Vermont', 'Virginia', 'Washington', 'West Virginia', 'Wisconsin', 'Wyoming'];
}
我这里有个小哥哥http://plnkr.co/edit/LT6pAnS8asnpFEd5e6Ri
因此,简而言之,挑战是让 AngularUI 预先输入以匹配前导字符。
非常感谢您对此提供任何帮助或想法。
【问题讨论】:
标签: javascript angularjs filter angular-ui typeahead