Javascript AngularJs ng通过更深层次的数据重复过滤

Javascript AngularJs ng通过更深层次的数据重复过滤,javascript,angularjs,Javascript,Angularjs,在我的约会数据中,我有月、周、日、时隙 在列表视图中,显示“周”并不重要(但对于其他报告很重要) 对于“天”,我可以筛选出没有预约的天,如下所示: <div ng-repeat="month in appointments.months: | filter:{????:''}"> <div>{{month.name}}</div> <div ng-repeat="week in month.weeks"> <!--Not disp

在我的约会数据中,我有月、周、日、时隙

在列表视图中,显示“周”并不重要(但对于其他报告很重要)

对于“天”,我可以筛选出没有预约的天,如下所示:

<div ng-repeat="month in appointments.months: | filter:{????:''}">
  <div>{{month.name}}</div>
    <div ng-repeat="week in month.weeks"> <!--Not displaying anything for weeks-->
        <div ng-repeat="day in weeks.days | filter:{timeslots:''}">
    ....</div></div></div>

{{month.name}
....
筛选器:{timeslots:''}具有所需的抑制无约会天数的效果

我还想从显示器上取消几个月没有预约。 我尝试了|filter:{weeks.days.timeslot:'}的变体,但没有成功


是否有一种直接(内置)的方法对angularjs中的值进行深度筛选,或者我必须为此构建一个自定义筛选?

是的,有一种方法存在

可以使用特殊属性名
$
(如{$:“text”})来接受与对象的任何属性或其嵌套对象属性的匹配。
谓词可以通过在字符串前面加上!。例如{name:“!M”}谓词将返回属性名不包含“M”的项数组


以下是解释说明。

您想提供约会数据集吗?您让我走上了正确的轨道。。。因为我要为一个特定属性寻找一个“NOTNULL”值,所以我不得不稍微嵌套它<代码>|筛选器:{$:{timeslot:'}}它将读取为仅包含具有具有值(或不为null)的timeslot属性的对象