Вы используете ng-show
для подготовки представления div
.Теперь ng-show
ожидает состояние, которое оценивается как true
или false
(если true
, показать).Когда вы оставляете в качестве аргумента только значение (в вашем случае), AngularJS обрабатывает его как: , если объект существует, тогда TRUE, иначе FALSE .Поскольку длина массива существует (т. Е. 0 ), результатом оценки будет TRUE .
Чтобы получить то, что вам нужно, вам нужна запись:
<div class="col-12 col-sm-12 col-md-6 col-lg-6"
ng-repeat="item in faqs"
ng-show="([item] | filter: search).length ">
стать:
<div class="col-12 col-sm-12 col-md-6 col-lg-6"
ng-repeat="item in faqs"
ng-show="([item] | filter: search).length > 0 ">
Как это проясняет ситуацию, а также решает вашу проблему.