如果一个属性存在于angarjs中,显示它的所有对象和过滤器
Display all object, filter on a property if it exists in AnguarJS
我的问题是:
我有一个通过调用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值,并将其显示为一个没有标签的复选框,或者(稍微调整一下)不显示任何课程,除非它有一个path属性。
我怎样才能显示所有的课程,不管它们的path属性是1、2、3、4还是Null,而不让Angular显示空复选框?
所有的课程都有多个属性,并且有三个搜索字段:关键字(搜索标题),主题和路径。在Path搜索中,有一个由AngularJS生成的复选框列表,它为Path中的每个唯一值显示一个复选框;1、2、3、4或Null。我遇到的问题是,我为隐藏Null值所做的一切,也过滤掉了列表中具有Null路径值的所有课程。如果Path != nullTL;DR:我想隐藏复选框的值为Null,而不隐藏课程列表中Path值为Null的课程
使用ng-if
不包含没有路径的复选框
<div class="checkbox"
ng-repeat="course in ds.courseList | unique:'course_path'"
ng-if="course.course_path">
使用
<div class="checkbox" ng-repeat="course in courseList ">
<label><input type="checkbox" ng-model="ds.searchPath" ng-show="{{course['course_path']}}">{{course['course_path']}}</label>
</div>
</div>
Codepen-http://codepen.io/nagasai/钢笔/XKpJxV
相关文章:
- ui网格日期单元格过滤器,过滤日期格式导致显示错误的日期
- 如何应用带过滤器的ng if来过滤记录,并在同一页面中显示两个不同的视图
- Regex有助于突出显示html中匹配文本的角度过滤器
- 角度ng重复显示应用过滤器之前的数据
- 我可以配置默认的角度过滤器以显示字符串,以便以搜索词开头的字符串排在第一位
- 显示Aurelia值转换器上的所有过滤器
- jQuery过滤器有时显示所有元素
- 显示骨干js过滤器
- AngularJS过滤器使用ng个重复复选框显示所有页面加载
- 如何通过过滤器显示特定值
- HTML最简单的隐藏/显示和类过滤器
- 自定义 Angular 日期范围过滤器,以仅显示该日期范围内的项目
- 轻量级 Javascript 表过滤器,以最少的字符输入显示结果
- 过滤器性能与 ng 重复与多个 ng 显示内部
- 如果在过滤器中返回空值,如何显示“未找到书籍”行
- 在初始加载时获取带有 postData 过滤器的 jqGrid,以仅显示客户端过滤行
- 有没有办法在 angularjs 过滤器中显示过滤数组的属性
- 过滤器:第 n 个子项忽略 css 显示为无的位置
- AngularJS日期过滤器显示错误的日期
- 角度自定义指令基本输入过滤器工作不正常,只显示匹配的第一个实例