filter不适用于从数组派生的ng-option,但适用于静态选项

时间:2014-08-30 00:15:26

标签: angularjs

<select ng-model="myOption" class= "form-control" ng-options="value.status for value in records | unique:'status'"> </select>
运行以下过滤器时

显示1条记录

<tr ng-repeat="data in records | filter:myOption">
            <td>{{data.vehicle_no}}</td>
            <td>{{data.vehicle_type}}</td>
            <td>{{data.status}}</td>
</tr>

但当我更改选项以使用静态选项时,例如

<select ng-model="myOption" class= "form-control">
<option>free</option>
<option>busy</option></select>

它为我返回两条记录(这是正确的)

请告知我如何使用ng-options使这些过滤器正常工作。我有点卡住..

1 个答案:

答案 0 :(得分:1)

如果要使用选择选项卡上声明的ng-model值进行过滤,则必须在ng-options指令中定义数据源。 在您的代码中,您没有指定选项的值,您应该使用类似这样的语法

ng-options="value.status as value.status for value in records..."

第一个value.status定义生成的选择中每个选项的值。

这是一个有效的例子,希望它会对你有帮助。

http://plnkr.co/edit/p7mqAIQlh7QIgYlSYMwK?p=preview