В моем приложении у меня есть структура вроде этого:Фильтрация вложенного массива
[ ["section title", [{ item }, { item } ... ]],
["section title", [{ item }, { item } ... ]], ... and so on
На мой взгляд, я помещаю разделы в панели, а также их внутренние списки в списках:
<div class="panel panel-default" ng-repeat="section in index">
<div class="panel-heading"><strong>{{section[0]}}</strong></div>
<ul class="list-group">
<li class="list-group-item" ng-repeat="item in section[1]">
... item view here
Но теперь я хочу добавить поиск, и я хочу, чтобы результаты поиска содержали только элементы из внутренних массивов. Я могу поставить функцию фильтра на верхнем уровне ...
ng-repeat="section in index | filter:matching()"
и имею функцию matching()
производить плоский список элементов в секциях, которые соответствуют поиску, но HTML настроен для обработки структуры сечения, а не плоский список. Что мне делать?
У меня есть фильтр, который дает результаты в структуре сечения, иногда с пустыми разделами (где нет элементов), а затем скрывать пустые разделы?
исправить это как-то в HTML, что-то вроде этого ...
<div ng-if="searchText"> --- I don't know what goes here </div> <div ng-if="!searchText"> --- same as above
Эта вторая идея, кажется, страшно мне.
Что-то поумнее (надеюсь), что я пропускаю
Спасибо.