【发布时间】:2017-08-16 08:32:12
【问题描述】:
我有一个仪表板列表 (vm.dashboards),我想从中筛选出我创建的仪表板。默认情况下它显示整个列表,但是当我点击“显示我的仪表板”复选框时,它应该只显示我创建的仪表板列表。
HTML 代码:
<div>
<input type="checkbox" ng-model="showMyDashboard" ng-value="vm.myDashboard" ng-checked="false" ng-true-value="1" ng-false-value="0"><span for="radio" style="margin-left:5px;" class="text-only">Show my dashboards</span>
</div>
<ul ng-repeat="dashboard in vm.dashboards" class="list-group">
<li class="list-group-item">
<div class="row">
<div class="col-sm-5"><a class="list-group-item-heading dashboard-heading">{{ dashboard.title }} </a>
<p class="list-group-item-text dashboard-text">{{ dashboard.desc }}</p>
</div></li>
</ul>
现在棘手的部分是没有直接的方法来获取 myDashboards 列表。 If(currentUserId === dashboardOwnerId) 则该特定仪表板是 myDashboard。所以我必须在过滤器中应用条件。我尝试过这种方法:
ul.list-group(ng-repeat="dashboard in vm.dashboards | filter: dashboard.creator["@href"].split("/").pop() === vm.currentUSerID")
所以, dashboard.creator["@href"].split("/").pop() 将给出类似 1、101、123 的值。 和 currentUserID 也会给出类似的值。当两者都匹配时,我得到了我创建的仪表板。
上面的这个过滤器与我想要的完全相反,它列出了所有不是我创建的仪表板。 我可以给过滤器这样的条件吗?我需要为它构建自定义过滤器吗?任何帮助/建议将不胜感激。谢谢!
【问题讨论】:
-
请查看以下链接。 Link
标签: angularjs list checkbox angular-filters