как узнать количество элементов в фильтре (| filter: foo) - PullRequest
0 голосов
/ 16 мая 2018

Я хочу выполнить проверку, если при создании фильтра нет элементов, скрыть div, иначе он будет отображаться. Это мой код:

<!-- show/hide this div depends if exist coincidence on the filter -->
<p class="text-center txt_color_azul_oscuro tip_fuen_roboto_l txt_sm">elements:</p>


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

<input class="field" type="text" type="text" ng-model="search" required>

1 Ответ

0 голосов
/ 16 мая 2018

Вы используете 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 ">

Как это проясняет ситуацию, а также решает вашу проблему.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...