我有一个基于个人姓名过滤的输入。我的person对象有更多字段,而不仅仅是名称(至少{name, surname}
),我希望过滤器能够以名字和姓氏为基础工作。
这是当前的预先输入,基于angular-ui-bootstrap
:
<input type="text" id="friendInput" placeholder="Friend's name"
typeahead="friend for friend in friendsList | filter:{name:$viewValue}"
typeahead-template-url="friendDropdown.html" ng-model="chosenFriend" />
我已尝试修改filter
属性的typeahead
部分,但我想我还没找到正确的方法。什么是正确的方式?
答案 0 :(得分:-1)
你可以在你的范围内声明一个过滤器并使用它
<input type="text" id="friendInput" placeholder="Friend's name"
typeahead="friend for friend in friendsList | filter:nameFilter"
typeahead-template-url="friendDropdown.html" ng-model="chosenFriend" />
并在你的控制器中声明
$scope.nameFilter = function(friend) {
var regex = new RegExp('' + $scope.chosenFriend, 'i');
return regex.test(friend.name) || regex.test(friend.surname); // test on both field
}