我在下面给出的HTML中使用了ngOptions指令:
<select ng-model="selectedGroupToShow.Id" ng-options="g.Id as g.Name for g in myGroups">
<option value>-- All --</option>
</select>
我在ng-repeat中使用的过滤器显示我的数据如下:
filter:{GroupId:selectedGroupToShow.Id}"
即使我使用
filter:selectedGroupToShow
问题保持不变。重置过滤器..
这很有效,但是当我想清除过滤器时(选择默认选项 - '全部'),它只会显示根本没有设置 GroupId 参数的数据。
如何在select?
中选择默认选项元素时显示所有数据(清除过滤器)答案 0 :(得分:23)
我想我理解你的问题,你所面临的问题是当选择下拉菜单时--ALL--它的值为null且未定义。 所以要重置它,你必须将它设置为undefined。
<div ng-repeat="item in items| filter:{itemId:selectedGroupToShow.Id||undefined}">
{{item.itemId}}
</div>
请参考我为您的问题创建的以下小提琴。
答案 1 :(得分:1)
我是这样做的,只是一个空的String值。
希望它可以帮助任何人。
JADE代码:
select.form-control(ng-model="productType", ng-init="productType='free'")
option(value="free") FREE
option(value="interest") INTEREST
option(value="hybrid") HYBRID
option(value="") ALL
.col-sm-6.col-md-4.col-lg-3(ng-repeat="product in productList | filter:{ type :productType }") {{product.name}}