AngularJs UI中的预先输入功能看起来简单而强大,但我一直试图弄清楚如何在前导字符上进行匹配.例如,如果我在输入框中键入"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>
Run Code Online (Sandbox Code Playgroud)
基本的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', …Run Code Online (Sandbox Code Playgroud)