显示所有对象,过滤属性(如果它存在于AnguarJS

时间:2016-06-23 21:47:15

标签: javascript angularjs

我的问题是:

我有一个课程列表,通过进行API调用填充并显示结果列表。您可以按主题或关键字过滤每个课程。

属于一组课程,其属性名为" Path"并非所有课程都有。

在API中,我可以为值" Path"分配值1,2,3,4或Null。下面是允许我使用Path属性过滤课程的代码。

<div class="checkbox" ng-repeat="course in ds.courseList | unique:'course_path'">
<label><input type="checkbox" ng-model="ds.searchPath" ng-true-value="{$course.course_path$}" ng-false-value="">{$course.course_path$}</label>
</div>

所以真正的问题是AngularJS正在获取Null值并将其显示为没有标签的复选框,或者(略微调整)不显示任何课程,除非它具有路径属性。

如何显示所有课程,无论他们是否具有1,2,3,4或Null的路径属性,并且没有Angular显示空复选框?

编辑为CLARITY:所有课程都有多个属性,有三个搜索字段:关键字(搜索标题),主题和路径。在路径搜索中,AngularJS生成一个复选框列表,其中显示Path中每个唯一值的复选框; 1,2,3,4或Null。我遇到的问题是我为隐藏Null值而做的所有事情,也过滤掉了列表中具有Null路径值的所有课程。我只想过滤Path,如果Path!= null。

TL; DR:我想要隐藏值为Null的复选框,而不会从课程列表中隐藏路径值为Null的课程。

2 个答案:

答案 0 :(得分:1)

使用ng-if不包含没有路径的复选框

<div class="checkbox" 
     ng-repeat="course in ds.courseList | unique:'course_path'"
     ng-if="course.course_path">

答案 1 :(得分:0)

使用

matplotlib.offsetbox.DrawingArea

Codepen - http://codepen.io/nagasai/pen/XKpJxV