gpt4 book ai didi

javascript - 如果过滤器已应用于子级 AngularJS,则将过滤器应用于父级

转载 作者:行者123 更新时间:2023-11-27 23:55:22 25 4
gpt4 key购买 nike

我有一个包含项目的列表,并已按文本框中的值对这些项目应用了过滤器。如果父级至少有一个过滤项目,我想获得包含父级及其子级的新过滤列表。如果没有,则不应显示该父级。

举个例子:如果我在文本框中输入“3D”,我不想获得下面列出的“日部分”和“周部分”,因为它们在过滤后不再有子项。

<div ng-controller="Ctrl">
<input type="text" data-ng-model="inputValue.name"/>
<ul data-ng-repeat="condition in conditions">

<div data-ng-click="setHeadingStatus(condition)">
<div>
{{condition.name}}
</div>
<li ng-repeat="item in condition.items | filter:inputValue">

<div class="custom-typeahead-list-title">{{item.name}}</div>
<div class="custom-typeahead-list-desc">{{item.description}}</div>

</li>
</div>
</ul>

function Ctrl($scope , $filter){

$scope.countryCode = 1;

$scope.conditions = [
{
"id": 1,
"name": "Experiences",
"expanded": false,
"items": [
{
"id": 1,
"name": "3D"

},
{
"id": 2,
"name": "Imax"
},
{
"id": 3,
"name": "D-Box"
},
{
"id": 4,
"name": "THX"
}
]
},
{
"id": 2,
"name": "Day parts",
"expanded": false,
"items": [
{
"id": 1,
"name": "Early Bird"
},
{
"id": 2,
"name": "Matinee"
},
{
"id": 3,
"name": "Last Night"
}
]
},
{
"id": 3,
"name": "Week parts",
"expanded": false,
"items": [
{
"id": 1,
"name": "Monday"
},
{
"id": 2,
"name": "Wednesday"
},
{
"id": 3,
"name": "Weekend"
}
]
}
]

}

这是它的示例
http://jsfiddle.net/KJ3Nx/48/

最佳答案

可以在显示每个 block 的div上放置一个ng-show,并将表达式设置为过滤后的长度;

<div data-ng-show="(condition.items | filter:inputValue).length > 0" data-ng-click="setHeadingStatus(condition)">

Updated fiddle

关于javascript - 如果过滤器已应用于子级 AngularJS,则将过滤器应用于父级,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32307094/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com