如何通过有角度的组合框过滤?

时间:2015-07-30 06:01:25

标签: angularjs ngtable

假设我有一个select用作ngtable的过滤器的一部分:

<select ng-model="search.id" id="">
                <option value=0>All</option>
                <option value=111>111</option>
                <option value=112>112</option>
</select>

表格和过滤器在html中显示如下:

<table ng-table="tableParams" class="table">
            <tr ng-repeat="account in $data  | filter:search.accountName">
              <td data-title="'id'">
                {{account.account.accountId.id}}
              </td>
              <td data-title="'name'">
                {{account.account.accountName}}
              </td>

            </tr>
</table>

这是过滤器:

$scope.idFilter = function(account) {
    return (account.accountId.id == search.id);
}

这是json数据:

var data = [{
      "account": {
        "accountId": {
          "id": "111"
        },
        "accountName": "Jack the Beanstalker"
      }
    },

    {
      "account": {
        "accountId": {
          "id": "112"
        },
        "accountName": "Mick the Stalkbeaner"
      }
    }
  ];

plunker:http://plnkr.co/edit/do3Khx?p=preview

1 个答案:

答案 0 :(得分:2)

如果您尝试根据下拉列表进行过滤,您可以像这样实现(虽然我不确定我理解正确吗?):

只需将其添加为另一个过滤器:

| filter:search.id

并在选择选项中添加''作为第一行的值

<option value=''>All</option> 
<option value=111>111</option>
<option value=112>112</option>

http://plnkr.co/edit/6S2Yh5zUhc6CEFfc3nvB?p=preview

这对你有用吗?