选择选项是:
`[
{StatusID: 0, StatusDesc: "New"},
{StatusID: 10, StatusDesc: "Enabled"},
{StatusID: 30, StatusDesc: "InProgess"},
{StatusID: 70, StatusDesc: "Done"}
];`
为了显示所有值,我添加了选项" all"有价值""
<select id="StatusID" name="statusID" ng-model="search.StatusID" ng-options="Status.StatusID as Status.StatusDesc for Status in StatusList">
<option value="">All</option>
</select>
问题在于选择值 0 的 NEW 时,它会显示所有值,而选择 ALL 则不会显示任何值。
您可以找到示例代码here.
答案 0 :(得分:0)
您需要进行两项更改..
在你的itemslist json中,状态ID是字符串,将它们转换为数字。
- 醇>
你必须对Angular说你想要一个严格的比较。使用Angular 1.1.5很容易,因为过滤器过滤器现在有第三个参数,比较器,其中true是一个非常有用的简写。
E.g。
<tr ng-repeat="item in itemList | filter:search:true">
答案 1 :(得分:0)
通过为所有
添加 statusID 作为未定义来修复[
{StatusID: undefined, StatusDesc: "All"},
{StatusID: 0, StatusDesc: "New"},
{StatusID: 10, StatusDesc: "Enabled"},
{StatusID: 30, StatusDesc: "InProgess"},
{StatusID: 70, StatusDesc: "Done"}
];
使用自定义过滤器
$scope.statusFilter = function (item) {
return $scope.currentStatus === undefined || item.StatusID === $scope.currentStatus
}