Я хотел бы отфильтровать ng-repeat
, что у меня есть выбор и вход. Если входной сигнал установлен на all
, тогда фильтр по всем полям, если он установлен на другое значение выбора, а затем фильтрует только в этом поле.Поле с определенным угловым фильтром, основанное на выборе
У меня есть HTML, который выглядит, как этот
<input type="search" class="form-control" id="searchBox" ng-model="searchText">
<select class="form-control" id="searchType" name="searchType" ng-model="searchType">
<option value="all">All Fields</option>
<option value="locationCode">Location Code</option>
</select>
<!-- more code -->
<tr ng-if="!searchAll" ng-repeat="location in locations | filter:{searchType: searchText}" ts-repeat>
<tr ng-if="searchAll" ng-repeat="location in locations | filter:searchText" ts-repeat>
Я также обновляя $location.search()
когда либо выбрать или вход меняются, но это должно быть соответствующая часть моего контроллера:
$scope.$watch('searchType', function(value) {
$location.search('t', value).replace();
$scope.searchAll = $scope.searchType === 'all';
});
Мой фильтр работает правильно, когда выбрано all
, но при отсутствии другого значения он не отображает никаких данных. Однако он работает, если я жестко задал одно из значений поля в searchType
в первом ng-if
.
Какая очевидная вещь мне не хватает?
Я все еще пытаюсь заставить это работать, как я хочу, но я верю, что ваше первое решение привело меня в правильном направлении. – duffn