У меня есть требование, когда мне нужно отображать только дочерний элемент выбранного li. Ex. На изображении, показанном ниже, проверяется EIS_ASCP_FORECAST_SETS_V, поэтому отображается дочерний объект FND_USER и MRP_FORECAST_DESIGNATORS_V, а остальные элементы скрыты. Аналогично, когда выбран FND_USER, он должен быть показан. Дерево создается с помощью jquery и является динамическим. Я использую AngularJS для остальной части страницы.
Я попытался использовать $(event.target).parent().find('li')
но не смог извлечь из него дочерний элемент.
Код для формирования дерева
<li class="treeView">
<a ng-click="getViewColumns('EIS_ASCP_FORECAST_SETS_V', '724')" href=""><b>EIS_ASCP_FORECAST_SETS_V</b></a> <input type="checkbox" ng-checked="true" ng-click="useInSelect('EIS_ASCP_FORECAST_SETS_V')">
<ul>
<li><a ng-click="getViewColumns('FND_USER', '724')" href="">FND_USER</a> <input type="checkbox" ng-click="useInSelect('FND_USER')">
<li><a ng-click="getViewColumns('MRP_FORECAST_DESIGNATORS_V', '724')" href="">MRP_FORECAST_DESIGNATORS_V</a> <input type="checkbox" ng-click="useInSelect('MRP_FORECAST_DESIGNATORS_V')"></a>
</ul>
вы можете добавить ng-if="showHideComp(parentId)"
дочернему элементу. и внутри функции showHideComp() проверяет свойство isSelected parentId и соответственно возвращает true/false.
пример:
<input type="checkbox" ng-model="checked" ng-init="checked=true" /></label><br/>
Показывать при проверке:
<span ng-if="checked" class="animate-if">
This is removed when the checkbox is unchecked.
</span>