【发布时间】:2023-03-13 19:18:01
【问题描述】:
我正在使用 UI 引导程序预先输入,并且我正在根据前导字符进行匹配。例如,如果我在输入框中键入“A”,我想查看所有以“A”开头的州,如“Alabama”,而不是所有名称中包含“A”的州。
现在我想要实现的是,如果我在输入框中键入“A”,除了过滤掉所有以“A”开头的状态之外,我只想突出显示第一个 A。如果这个词是“Alabama”,它应该只突出“Alabama”的第一个“A”,而不是“A”的其他出现。如果我的列表中有“Papa”这个词,并且我在输入框中输入“Pa”,它应该会突出显示“Papa”中第一次出现的“Pa”。
这是我的示例代码
myHtml.html
<div class='container-fluid' ng-controller="TypeaheadCtrl">
<input type="text" ng-model="selected" typeahead="state for state in states | filter:$viewValue:startsWith">
</div>
myJs.js
angular.module('ui.bootstrap.demo').controller('TypeaheadCtrl', function($scope) {
$scope.states = ['Alabama', 'Alaska', 'Arizona', 'Arkansas'];
$scope.startsWith = function(state, viewValue) {
return state.substr(0, viewValue.length).toLowerCase() == viewValue.toLowerCase();
}
});
【问题讨论】:
标签: javascript angularjs twitter-bootstrap