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'];
}
我在这里有一个 plunker http://plnkr.co/edit/LT6pAnS8asnpFEd5e6Ri
因此,简而言之,挑战是让 AngularUI 预先输入以匹配前导字符。
对此的任何帮助或想法将不胜感激。