2015-05-22 1 views
0

У меня есть страница, которая отображает кучу элементов, и у меня есть боковая панель с некоторыми выделениями и поле поиска, которые используются для фильтрации отображаемых элементов. Он отлично работает, но теперь мне нужно сделать страницу результатов поиска.Как предварительно фильтровать поиск в AngularJS

Клиент получает на страницу результатов поиска с помощью строки запроса s = что-то я получил поисковый запрос, делая это:

$scope.searchTerm = $location.search().s; 

Так что я подумал, что если я установить поле поиска (фильтры результат) значение {{searchTerm}}, которое сделало бы трюк, но я был неправ.

В поле поиска отображается строка запроса, но она не фильтруется.

Представьте меня есть продукт под названием продукт х и мой поисковый запрос является венера. Все продукты все еще отображаются. Есть идеи?

+0

Вы должны фактически реализовать фильтр коллекции ... – tyler

+0

Существует рабочий фильтр. Если я удалю то, что находится внутри поля, и начнет вводить себя, он будет фильтроваться. –

+0

Может быть, хорошо включить этот код в ваш вопрос – tyler

ответ

2

Если у вас есть вход, похожий на этот:

<input type="text" ng-model="dataFilter" class="form-control"> 

Затем нужно ваше повторение включить в нг-модель в качестве фильтра, как это:

ng-repeat="user in dataSet | filter: dataFilter" 

Тогда просто назначить фильтр, который вы хотите к переменной $ scope для фильтра поиска, в этом случае это будет $ scope.dataFilter.

Вот plnkr пример, который я собрал для вас: http://plnkr.co/edit/isYfL6mVLPusc94mivGA?p=preview

+0

@Fernando, если у вас есть фильтр, подобный этому с помощью '| filter: searchTerm' он должен работать отлично. –

+0

Он работает в этом случае только с одним фильтром поиска. Как насчет этого? http://plnkr.co/edit/NTlKu3vmvv2kCykdSGlb?p=preview Что бы вы сделали? –

+0

@FernandoClaussen Я предполагаю, что вы хотите автоматически выбрать категорию? – SB2017

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