2014-09-30 44 views
1

我有一个基于人名的过滤器。我的person对象比name只有更多的字段(至少{name, surname}),我希望过滤器能够以名字和姓氏为基础工作。来自多个字段的角度Typeahead过滤器

这是当前预输入的基础上,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" /> 

我试图编辑typeahead属性的filter一部分,但我想我还没有找到正确的方法。正确的方式是什么?

回答

0

你可以声明在你的范围过滤器,并用它

<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 
}