gpt4 book ai didi

angularjs - 根据子对象属性过滤ng-repeat列表

转载 作者:行者123 更新时间:2023-12-03 08:27:34 27 4
gpt4 key购买 nike

jsfiddle http://jsfiddle.net/KfSBq/

所谓子对象,是指我用ng-repeat显示的所有对象在其内部都包含一个对象列表,并且我希望根据这些子对象之一的属性进行过滤。

仅此一项就非常简单。我有一个dailies对象,每个对象都包含一个date和一个entries对象列表:

function Ctrl($scope) {
$scope.dailies = [{date: new Date('07/07/2013'),
entries: [{category: 'A', note:'Lorem ipsum'},
{category: 'B', note: 'Lorem ipsum'}]},
{date: new Date('05/02/2013'),
entries: [{category: 'A', note: 'Lorem ipsum'}]}];
}

我按类别显示它们:
<div ng-controller="Ctrl">
<div class="daily" ng-repeat="daily in dailies | orderBy:'-date' ">
{{ daily.date | date:'dd/MM/y' }}
<div class="entry" ng-repeat="entry in daily.entries | filter:{ category: 'B'} ">
<span>{{ entry.category }}</span>, <span>{{ entry.note }}</span>
</div>
</div>
</div>

我的问题是,现在仍然显示不包含任何条目的日常对象。如何实现一种情况,如果过滤使 entriesdaily列表为空,那么该 daily也不会显示?

最佳答案

您可以在表达式内创建新的作用域成员。

这使您可以将过滤列表分配给新变量,该变量可以在整个本地范围内使用。这样,您可以将过滤列表的长度传递给ng-show:

<body ng-app>
<div ng-controller="Ctrl">
<div class="daily"
ng-repeat="daily in dailies | orderBy:'-date' "
ng-show="filteredEntries.length"
>
{{ daily.date | date:'dd/MM/y' }}
<div class="entry"
ng-repeat="entry in filteredEntries = (daily.entries | filter:{ category: 'B'})"
>
<span>{{ entry.category }}</span>, <span>{{ entry.note }}</span>
</div>
</div>
</div>
</body>

FIDDLE

顺便说一句,很好地提出问题!

关于angularjs - 根据子对象属性过滤ng-repeat列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17514272/

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