2015-02-17 4 views
1

Я использую AngularJS и AngularUI Bootstrap's Typeahead. Я хочу использовать фильтр с несколькими параметрами. Вот мой вход управления:AngularJS UI-Bootstrap Typeahead

<input id="tbUsers" class="form-control" ng-model="unit.userSel" 
           typeahead="user as user._FName + '(' + user._LName +')' for user in allUsers | filter:{_FName : _LName:$viewValue}:myFunc | limitTo:8"          
           typeahead-editable="false" required /> 

В мой контроллер у меня есть функция для MyFunc:

$scope.myFunc = function (FName, LName, viewValue) { 
    //logic here 
    return true; 
} 

Я не могу передать несколько параметров MyFunc. Если я удалю параметр LName из функции контроллера и входного фильтра, то он отлично работает. Если я добавлю 2 параметра, myFunc не будет вызван.

Пожалуйста, помогите!
P.S .: Мой первый вопрос здесь, поэтому я, возможно, нарушил несколько правил, извините!

ответ

2

Таким образом, существует множество решений проблемы, с которой вы сталкиваетесь. Если вам нужен «правильный ответ», фильтр выполняется через модуль фильтра «Угловой», поэтому вы должны взглянуть на следующее: https://docs.angularjs.org/api/ng/filter/filter (один простой способ сделать это - просто объединить два параметра в ng-модели).

Если вам нужен очень простой ответ ... Вы можете просто передать ему объект вместо свойства объекта, таким образом, он фильтрует все.

+0

Ну, верно, но тогда мне нужно отфильтровать только по 2 полям, и этот объект огромен, с более чем 10 полями. Угловой модуль фильтра теперь выглядит практически возможным. –

+0

Фильтр в бутстрапе UI основан на фильтрах (так что вы можете по существу делать то же самое ...) – John

Смежные вопросы