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

Posted

技术标签:

【中文标题】Angular JS,带有选择框的过滤表【英文标题】:Angular JS, filter table with a select box 【发布时间】:2013-05-20 04:03:23 【问题描述】:

我有一张桌子。我想根据在选择框中选择的值来过滤表格。比较值是选择框中的 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>

【问题讨论】:

带选择框,最好使用ng-options。 docs.angularjs.org/api/ng/directive/select 【参考方案1】:

我建议使用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>

【讨论】:

【参考方案2】:

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

【讨论】:

以上是关于Angular JS,带有选择框的过滤表的主要内容,如果未能解决你的问题,请参考以下文章

如何使用外部选择框过滤数据表?

angular 无法重置下拉框的值

使用宏过滤带有组合框的表单 - MS Access

组合框的访问选择查询并不总是评估复选框值

带有不可选择组合框的 access2010 表单

Choices.js:将动态数据添加到选择选项中