Angular JS,带有选择框的过滤表

时间:2013-05-24 14:06:39

标签: angularjs angularjs-ng-repeat angularjs-filter

我有一张桌子。我想根据选择框中选择的值来过滤表格。比较值为选择框中的{{pipe.pipe_id}}和表格中的{{dimension.pipe_id}}。猜猜有一个简单的解决方案吗?有什么建议吗?

Pipe:
    <select  id="select01">
        <option ng-repeat="pipe in pipes">{{pipe.code}} - {{pipe.title_en}}</option>
    </select>  


    <table class="table table-striped">
        <thead>
            <tr>
                <th>Pipe</th>
                <th>Size</th>
                <th>Inner diameter</th>
                <th>Outer diameter</th>
            </tr>
        </thead>
        <tbody>
            <tr ng-repeat="dimension in dimensions" >
                <td>{{dimension.pipe_id}}</td>
                <td>{{dimension.nominalsize}}</td>
                <td>{{dimension.innerdiameter}}</td>
                <td>{{dimension.outerdiameter}}</td>
            </tr>
        </tbody>
    </table>

2 个答案:

答案 0 :(得分:9)

我建议使用ng-filter

此链接是使用待办事项列表的简单示例。 jsfiddle using ng-filter

您需要使用ng-model="varname"

绑定您正在使用的任何输入

ng-filter默认为数组中的所有字段。它可以过滤到单个列或指向控制器中的函数。

搜索字段

<select ng-model="searchparam">
   <option value="1">One</option>
   <option value="2">Two</option>
</select>

搜索单个列

<select ng-model="searchparam.columnOne">
   <option value="1">One</option>
   <option value="2">Two</option>
</select>

重复部分
(即使您的输入指定了特定列,过滤器模型也保持不变)

<tr ng-repeat="dimension in dimensions | filter: searchparam">
     <td>{{dimension.columnOne}}</td>
     <td>{{dimension.columnTwo}}</td>
</tr>

答案 1 :(得分:1)

我认为您正在寻找ng-filterfilter过滤器:http://docs.angularjs.org/api/ng.filter:filter