angularjs: проверить длину фильтра в повтор

0

Например, у меня есть этот список повторов:

<ul>
    <li class="suggestion-item" ng-repeat="item in suggestionList.items | filter: {id: 2} track by track(item)">{{item.text}}</li>
<ul>

Могу ли я каким-то образом (лучше бы без изменения контроллера, потому что это директива), проверьте: если результат фильтра не пуст, тогда отобразите целую ul, если нет, затем скройте ul. Я имею в виду что-то вроде:

<ul ng-if="(item in suggestionList.items | filter: {id: 2}).length > 0">
    <li class="suggestion-item" ng-repeat="item in suggestionList.items | filter: {id: 2} track by track(item)">{{item.text}}</li>
<ul>

2 ответа

2
Лучший ответ

Вы можете присвоить результат фильтра переменной

<ul ng-show="filterResult && filterResult.length">
    <li class="suggestion-item" ng-repeat="item in filterResult = (suggestionList.items | filter: {id: 2}) track by track(item)">{{item.text}}</li>
<ul>
0

используя $ parent, вы можете достичь этого

<ul ng-show="suggestionListItem.length" >
 <li class="suggestion-item" ng-repeat="item in ($parent.suggestionListItem = (suggestionList.items | filter: {id: 2} track by track(item)))">{{item.text}}</li>
<ul>

Ещё вопросы

Сообщество Overcoder
Наверх
Меню