我有以下输入数据:
$scope.postList = [{
name: "Hello World #1",
is_published: false,
targeting: false
}, {
name: "Hello World #2",
is_published: true,
targeting: true
}, {
name: "Hello World #3",
is_published: true,
targeting: true
}, {
name: "Hello World #4",
is_published: false,
targeting: true
}];现在,我应该能够从下面的select筛选结果(使用ng-repeat显示)。
<select ng-model="filterByCriteria">
<option ng-value="published">Published</option>
<option ng-value="published">Unpublished</option>
<option ng-value="targeting">Custom Targeting</option>
<option ng-value="public">Public</option>
</select>如您所见,“已发布/ Unliblished”与is_published属性相关,而“自定义目标/公共”与targeting属性相关。
Plnkr:http://plnkr.co/edit/Ej8qSGCUbts0RVVJspM1?p=preview
发布于 2016-07-06 21:48:56
您可以这样做:添加这个新对象
$scope.filterByCriteria = [{
is_published: true
}, {
is_published: false
}, {
targeting: true
}, {
targeting: false
}];在HTML中
<body ng-app="myApp">
<div ng-controller="myController">
<div>
Filter by:
<select ng-model="selectedCriteria">
<option value="0">Published</option>
<option value="1">Unpublished</option>
<option value="2">Custom Targeting</option>
<option value="3">Public</option>
</select>
</div>
<ul>
<li ng-repeat="post in postList | filter: filterByCriteria[selectedCriteria]">
{{post.name}}
</li>
</ul>
</div>
下面是一个例子
https://stackoverflow.com/questions/38233856
复制相似问题